diff --git a/rows.go b/rows.go index f7ae7f9a88b840194864a9800a75ba33f4bc5dc5..25a2049dd1837160ec54fad0122fc7bbf7ce04d6 100644 --- a/rows.go +++ b/rows.go @@ -174,6 +174,8 @@ func (xlsx *xlsxC) getValueFrom(f *File, d *xlsxSST) (string, error) { return f.formattedValue(xlsx.S, d.SI[xlsxSI].T), nil case "str": return f.formattedValue(xlsx.S, xlsx.V), nil + case "inlineStr": + return f.formattedValue(xlsx.S, xlsx.IS.T), nil default: return f.formattedValue(xlsx.S, xlsx.V), nil } diff --git a/test/Book1.xlsx b/test/Book1.xlsx index 7168ff1e74c9fd67e7b86e7ed16815135baaca94..f94dfe9244a1a6c59be67ffe434022fef479adc7 100644 Binary files a/test/Book1.xlsx and b/test/Book1.xlsx differ diff --git a/xmlWorksheet.go b/xmlWorksheet.go index 748ca1fbbb2b92a0e8d4101d73216e2ab8301088..37c0d18e0dd5fc9fa8db309f38855e85b2204cad 100644 --- a/xmlWorksheet.go +++ b/xmlWorksheet.go @@ -304,6 +304,19 @@ type xlsxDataValidations struct { // xlsxC directly maps the c element in the namespace // http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have // not checked it for completeness - it does as much as I need. +// +// This simple type is restricted to the values listed in the following table: +// +// Enumeration Value | Description +// ---------------------------+--------------------------------- +// b (Boolean) | Cell containing a boolean. +// d (Date) | Cell contains a date in the ISO 8601 format. +// e (Error) | Cell containing an error. +// inlineStr (Inline String) | Cell containing an (inline) rich string, i.e., one not in the shared string table. If this cell type is used, then the cell value is in the is element rather than the v element in the cell (c element). +// n (Number) | Cell containing a number. +// s (Shared String) | Cell containing a shared string. +// str (String) | Cell containing a formula string. +// type xlsxC struct { R string `xml:"r,attr"` // Cell ID, e.g. A1 S int `xml:"s,attr,omitempty"` // Style reference. @@ -311,9 +324,18 @@ type xlsxC struct { T string `xml:"t,attr,omitempty"` // Type. F *xlsxF `xml:"f,omitempty"` // Formula V string `xml:"v,omitempty"` // Value + IS *xlsxIS `xml:"is"` XMLSpace xml.Attr `xml:"space,attr,omitempty"` } +// xlsxIS directly maps the t element. Cell containing an (inline) rich +// string, i.e., one not in the shared string table. If this cell type is +// used, then the cell value is in the is element rather than the v element in +// the cell (c element). +type xlsxIS struct { + T string `xml:"t"` +} + // xlsxF directly maps the f element in the namespace // http://schemas.openxmlformats.org/spreadsheetml/2006/main - currently I have // not checked it for completeness - it does as much as I need.