2
在C#中我有一個DataTable有有效值,其中一些是指數格式。我此數據表導出到XLSX文件使用ExtremeML(我認爲是基於OpenXML的)和下面的代碼:ExtremeML負指數導出問題
if (!Directory.Exists(savePath.Text))
Directory.CreateDirectory(savePath.Text);
using (var package = SpreadsheetDocumentWrapper.Create(savePath.Text + fileName + ".xlsx"))
{
for (int i = 0; i < dataset.Tables.Count; i++)
{
// declares worksheet
var part = package.WorkbookPart.WorksheetParts.Add(dataset.Tables[i].TableName.ToString()); // second worksheet filled by second collection
bool first = true;
int position = 0;
for (int row = 0; row < dataset.Tables[i].Rows.Count; row++)
{
for (int col = 0; col < dataset.Tables[i].Columns.Count; col++)
{
// adds to file
if (first)
part.Worksheet.SetCellValue(new GridReference(row, col), dataset.Tables[i].Columns[col].ColumnName.ToString());
else
part.Worksheet.SetCellValue(new GridReference(row, col), dataset.Tables[i].Rows[position][col]);
}
if (first)
{
first = false;
}
else
position++;
}
}
}
所得excel文件幾乎是可以接受的,所不同的是負指數負數 (例如 - 7.45E-05)將負號作爲一個數字(前面的例子變爲0.000-745)。這些列在DataTable中都設置爲雙精度,所以excel文件應該像這樣格式化它們。
有關這個問題的原因的任何想法? (另外,我知道代碼是一種痛苦的觸摸 - 代碼不是我的,並且我還沒有得到清理該程序。)
謝謝,我欠你一個 – SeanVDH 2011-03-09 15:20:42