請參考鏈接,我使用來從數據表格Excel文件中的代碼來生成excel文件。我能夠成功生成excel文件。微軟開放SDK 2.0中使用C#
但問題/挑戰/問題如下。
- 我要生成具體根據數據類型列,所以如果列值包含日期它細胞格式應該日期(DD/MM/YYY)如果號碼然後數字。答等等...
- 我試圖生成excel文件按照數據格式,你可以看到特定的方法來生成單元格的值。但問題是,當用戶下載文件時,會發出警告信息「Excel發現無法讀取的內容'文件名'。是否要恢復此工作簿的內容?」。我不希望這個警告信息應該來。
- 如果我寫一切文字無需格式然後文件沒有任何警告信息,並下載文件後,如果用戶試圖在日期或數字格式來格式化相應的列將打開,隨後也將不允許用戶格式化/片&骰子數據在excel文件中。
參考: - http://www.codeproject.com/Articles/263106/Export-Tabular-Data-in-CSV-and-Excel-Formats-Throu
請讓我知道解決辦法,如果任何人有。
我使用DocumentFormat.OpenXml.dll
private Cell CreateTextCell(string header, UInt32 index, string text)
{
var cell = new Cell {DataType = CellValues.InlineString, CellReference = header + index};
var istring = new InlineString();
var t = new Text {Text = text};
istring.Append(t);
cell.Append(istring);
return cell;
}
private Cell CreateDateCell(string header, UInt32 index, DateTime sDate)
{
Cell cell = new Cell();
cell.DataType = CellValues.Date;
cell.CellReference = header + index;
cell.StyleIndex = UInt32Value.FromUInt32(14);
cell.CellValue = new CellValue { Text = sDate.ToOADate().ToString() };
return cell;
}
private Cell CreateNumberCell(string header, UInt32 index, string text)
{
Cell cell = new Cell();
cell.DataType = CellValues.Number;
cell.CellReference = header + index;
cell.CellValue = new CellValue(text);
return cell;
}
作爲一個建議:使用類似EPPLUS。它很好地隱藏了Open XMl SDK的底層管道。 我既工作,不能說我多麼愛EPPLUS;) –
是免費的工具? – pm86
是的,即使許可證對開發人員來說也是非常好的。 –