I am using LINQ to XML to create an Excel XML file. I want to include newlines within the cells. Excel uses the
literal to represent a new line. If I try to add this using an XText:
XText newlineElement = new XText( "Foo Bar" );
I get:
Foo
Bar
Which shows up in Excel as:
Foo Bar
Is there a way to write 

to the XML file without doing a
String.Replace( "
", " " )
over the resulting file text?
EDIT Here is a code snippet showing how I create a row for the Excel document. I was avoiding it since it is a little messy. :) Let me know if more code would help, or if this just adds more confusion.
In this example, the newlineElement
described above is represented by the only XText in the code sample.
const string CELL = "{urn:schemas-microsoft-com:office:spreadsheet}Cell";
const string DATA = "{urn:schemas-microsoft-com:office:spreadsheet}Data";
const string STYLE = "{urn:schemas-microsoft-com:office:spreadsheet}StyleID";
const string TYPE= "{urn:schemas-microsoft-com:office:spreadsheet}Type";
const string HEIGHT = "{urn:schemas-microsoft-com:office:spreadsheet}Height";
const string ROW = "{urn:schemas-microsoft-com:office:spreadsheet}Row";
...
XElement rowElement = new XElement( Row,
new XElement( CELL,
new XAttribute( STYLE, "s0" ) ),
new XElement( CELL,
new XElement( DATA,
new XText( description.Replace("\n", " ") ),
new XAttribute( TYPE, "String" ) ),
new XAttribute( STYLE, "sWrap" ) ),
new XElement( CELL,
new XAttribute( STYLE, "s0" ) ),
new XAttribute( HEIGHT, height ) );
This produces:
<ss:Row ss:Height="45">
<ss:Cell ss:StyleID="s0" />
<ss:Cell ss:StyleID="sWrap">
<ss:Data ss:Type="String">Foo&#10;Bar</ss:Data>
</ss:Cell>
<ss:Cell ss:StyleID="s0" />
</ss:Row>
Thanks for the help thus far!