Question

I generate my spreadsheet with xslt and want a cell with wrapped text (or better: a text with a line break in it).

So my xslt generates the following XML for the sheetdata:

<sheetData>
  <row r="1">
    <c r="A1" t="inlineStr">
      <is>
        <t>
          a simple string
          line break jeeeehaaa
        </t>
      </is>
    </c>
  </row>
</sheetData>

After I'm finished building my Workbook, I open it in Excel; and there's no line break, just a simple one-line string in A1.

has anyone a solution to this? Doesn't have to be in xml or xslt (but would be nice). I could also do some things in c#

Was it helpful?

Solution

In excel, all style related information is stored in style.xml file. So, the wrapping information should be stored in style.xml and the style Id should be referred in <c r="A1" t="inlineStr"> as one more attribute 's' (which means style). Let me show what do I mean by this..

I do have an excel with some text and the cell is wrapped indeed.

If I see its sheet.xml data it would have s="1" attribute-value item in <c> tag.

So, if I open style.xml and see the cell style info I'll get <cellXfs> tag and a <xf> child tag where I get a <alignment> tag with wrapText attribute with value as "1" ("true" indeed).

I'm unable to post images since I'm new to SO. Hope this helps :)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top