我目前正在爲我們的應用程序開發一個組件,它允許我們生成一個Excel工作表,而客戶端不必擁有Excel。所以開放的XML浮現在腦海。Office Open XML日期不工作
目前不能正常工作的是解析日期。
這是我的工作表:
<?xml version="1.0" encoding="UTF-8"?>
<x:worksheet xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<x:cols>
<x:col min="1" max="1" width="42.42" customWidth="1" />
<x:col min="2" max="2" width="42.56" customWidth="1" />
<x:col min="3" max="3" width="16.27" customWidth="1" />
</x:cols>
<x:sheetData>
<x:row r="1">
<x:c r="A1">
<x:v>FF kijken hoe dit werkt snap er geen fu** van</x:v>
</x:c>
<x:c r="B1">
<x:v>This is some really, really long text to display.</x:v>
</x:c>
<x:c r="C1" s="0">
<x:v>40651.6777777778</x:v>
</x:c>
</x:row>
</x:sheetData>
</x:worksheet>
這是我的樣式表:
<?xml version="1.0" encoding="UTF-8"?>
<x:styleSheet xmlns:x="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
<x:numFmts count="1">
<x:numFmt numFmtId="164" formatCode="dd-mm-yy hh:mm" />
</x:numFmts>
<x:fonts count="1">
<x:font>
<x:sz val="11" />
<x:name val="Arial" />
</x:font>
</x:fonts>
<x:cellXfs count="1">
<x:xf numFmtId="164" fontId="0" fillId="0" borderId="0" xfId="0"` applyNumberFormat="1" />
</x:cellXfs>
</x:styleSheet>
這是我用得到我的日期代碼。
cell.StyleIndex = 0; .
string columnValue = date.ToOADate().ToString().Replace(",", ".");
//string columnValue = date.ToOADate().ToString().
Replace(CultureInfo.CurrentUICulture.NumberFormat.NumberDecimalSeparator, ".");
cell.CellValue = new CellValue(columnValue);
結果不是我想要的,我會從日期中得到double值,而不是我創建的樣式表中的日期。
我會得到這個40651,67778,而不是18-4-2011 16:16
可以找到你想要寫的日期出到Excel文件?如果不是40651.67778的值是正確的? – petelids
是的我想寫出一個Excel文件的日期,似乎值40651.67778是正確的。 Excel將日期處理爲雙精度值,但是此雙精度值需要格式化爲Excel工作表中的日期。所以我製作了這個NumberingFormat「dd-mm-yy hh:mm」。但是,這是行不通的! –