summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rows.go50
-rw-r--r--test/Workbook1.xlsxbin18311 -> 26846 bytes
-rw-r--r--test/Workbook_2.xlsxbin0 -> 26846 bytes
-rw-r--r--test/Workbook_3.xlsxbin0 -> 6879 bytes
4 files changed, 50 insertions, 0 deletions
diff --git a/rows.go b/rows.go
new file mode 100644
index 0000000..c717c23
--- /dev/null
+++ b/rows.go
@@ -0,0 +1,50 @@
+package excelize
+
+import (
+ "encoding/xml"
+ "strings"
+ "strconv"
+)
+
+
+// GetRows return all the rows in a sheet
+func (f *File) GetRows(sheet string) ([]xlsxRow, error) {
+ var xlsx xlsxWorksheet
+ name := `xl/worksheets/` + strings.ToLower(sheet) + `.xml`
+ err := xml.Unmarshal([]byte(f.readXML(name)), &xlsx)
+ if ( err != nil ) {
+ return nil, err
+ }
+ rows := xlsx.SheetData.Row
+
+ return rows, nil
+
+}
+
+
+// readXMLSST read xmlSST simple function
+func readXMLSST(f *File) (xlsxSST, error) {
+ shardStrings := xlsxSST{}
+ err := xml.Unmarshal([]byte(f.readXML(`xl/sharedStrings.xml`)), &shardStrings)
+ return shardStrings, err
+}
+
+// GetValueFrom return a value from a column/row cell,
+// this function is inteded to be used with for range on rows
+// an argument with the xlsx opened file
+func (self* xlsxC) GetValueFrom(f *File) (string, error) {
+ switch self.T {
+ case "s":
+ xlsxSI := 0
+ xlsxSI, _ = strconv.Atoi(self.V)
+ d, err := readXMLSST(f)
+ if ( err != nil ) {
+ return "", err
+ }
+ return d.SI[xlsxSI].T, nil
+ case "str":
+ return self.V, nil
+ default:
+ return self.V, nil
+ } // switch
+}
diff --git a/test/Workbook1.xlsx b/test/Workbook1.xlsx
index d2a9a2e..2ac442a 100644
--- a/test/Workbook1.xlsx
+++ b/test/Workbook1.xlsx
Binary files differ
diff --git a/test/Workbook_2.xlsx b/test/Workbook_2.xlsx
new file mode 100644
index 0000000..efb9785
--- /dev/null
+++ b/test/Workbook_2.xlsx
Binary files differ
diff --git a/test/Workbook_3.xlsx b/test/Workbook_3.xlsx
new file mode 100644
index 0000000..dd63d14
--- /dev/null
+++ b/test/Workbook_3.xlsx
Binary files differ