| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- package excelize
- import (
- "encoding/xml"
- "strconv"
- "strings"
- )
- // Get value from cell by given sheet index and axis in XLSX file
- func GetCellValue(file []FileList, sheet string, axis string) string {
- axis = strings.ToUpper(axis)
- var xlsx xlsxWorksheet
- row := getRowIndex(axis)
- xAxis := row - 1
- name := `xl/worksheets/` + strings.ToLower(sheet) + `.xml`
- xml.Unmarshal([]byte(readXml(file, name)), &xlsx)
- rows := len(xlsx.SheetData.Row)
- if rows <= xAxis {
- return ``
- }
- for _, v := range xlsx.SheetData.Row[xAxis].C {
- if xlsx.SheetData.Row[xAxis].R == row {
- if axis == v.R {
- switch v.T {
- case "s":
- shardStrings := xlsxSST{}
- xlsxSI := 0
- xlsxSI, _ = strconv.Atoi(v.V)
- xml.Unmarshal([]byte(readXml(file, `xl/sharedStrings.xml`)), &shardStrings)
- return shardStrings.SI[xlsxSI].T
- case "str":
- return v.V
- default:
- return v.V
- }
- }
- }
- }
- return ``
- }
|