summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Willing <sewi@cpan.org>2018-06-11 17:25:28 +0200
committerSebastian Willing <sewi@cpan.org>2018-06-11 17:25:28 +0200
commitccdefb3b16c31b911f4f26b901939c012b53d712 (patch)
treeed5afe049d35a86fd14e995f363105cb11cece54
parent9e463b4614348b3ddc04b1fedd5d662845ce0fb9 (diff)
Documentation:
* Add information about return value of NewSheet() * Minor documentation language fixes Samples: * Added sample go file for dumping a XLSX file to the console
-rw-r--r--samples/dumpXLSX.go45
-rw-r--r--sheet.go13
2 files changed, 52 insertions, 6 deletions
diff --git a/samples/dumpXLSX.go b/samples/dumpXLSX.go
new file mode 100644
index 0000000..853a337
--- /dev/null
+++ b/samples/dumpXLSX.go
@@ -0,0 +1,45 @@
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/360EntSecGroup-Skylar/excelize"
+)
+
+func main() {
+ // Exit on missing filename
+ if len(os.Args) < 2 || os.Args[1] == "" {
+ fmt.Println("Syntax: dumpXLSX <filename.xlsx>")
+ os.Exit(1)
+ }
+
+ // Open file and panic on error
+ fmt.Println("Reading ", os.Args[1])
+ xlsx, err := excelize.OpenFile(os.Args[1])
+ if err != nil {
+ panic(err)
+ }
+
+ // Read all sheets in map
+ for i, sheet := range xlsx.GetSheetMap() {
+ //Output sheet header
+ fmt.Printf("----- %d. %s -----\n", i, sheet)
+
+ // Get rows
+ rows := xlsx.GetRows(sheet)
+ // Create a row number prefix pattern long enough to fit all row numbers
+ prefixPattern := fmt.Sprintf("%% %dd ", len(fmt.Sprintf("%d", len(rows))))
+
+ // Walk through rows
+ for j, row := range rows {
+ // Output row number as prefix
+ fmt.Printf(prefixPattern, j)
+ // Output row content
+ for _, cell := range row {
+ fmt.Print(cell, "\t")
+ }
+ fmt.Println()
+ }
+ }
+}
diff --git a/sheet.go b/sheet.go
index 9e8f4c9..d087df4 100644
--- a/sheet.go
+++ b/sheet.go
@@ -12,9 +12,10 @@ import (
"unicode/utf8"
)
-// NewSheet provides function to create a new sheet by given worksheet name,
-// when creating a new XLSX file, the default sheet will be create, when you
-// create a new file.
+// NewSheet provides function to create a new sheet by given worksheet name.
+// When creating a new XLSX file, the default sheet will be created.
+// Returns the number of sheets in the workbook (file) after appending the new
+// sheet.
func (f *File) NewSheet(name string) int {
// Check if the worksheet already exists
if f.GetSheetIndex(name) != 0 {
@@ -202,8 +203,8 @@ func replaceRelationshipsNameSpaceBytes(workbookMarshal []byte) []byte {
}
// SetActiveSheet provides function to set default active worksheet of XLSX by
-// given index. Note that active index is different with the index that got by
-// function GetSheetMap, and it should be greater than 0 and less than total
+// given index. Note that active index is different from the index returned by
+// function GetSheetMap(). It should be greater than 0 and less than total
// worksheet numbers.
func (f *File) SetActiveSheet(index int) {
if index < 1 {
@@ -237,7 +238,7 @@ func (f *File) SetActiveSheet(index int) {
}
}
-// GetActiveSheetIndex provides function to get active sheet of XLSX. If not
+// GetActiveSheetIndex provides function to get active sheet index of the XLSX. If not
// found the active sheet will be return integer 0.
func (f *File) GetActiveSheetIndex() int {
buffer := bytes.Buffer{}