Bitte sehen Sie sich das folgende Code-Snippet an. Ich öffne einfach die Excel-Datei myfile.xlsx
und ich füge Zeilen von einem Objekt des Typs List<Account>
hinzu (wo mein Account
Objekt nur Date
, Account
und Amount
Eigenschaften hat), und speichern Sie die Datei mit dem Namen myoutputfile.xlsx
. Ich möchte die Zellen, in denen ich die Daten schreibe, um ein Datumsformat zu haben, und die Zellen, in denen ich habe, um ein numerisches Format zu haben. Wenn ich jedoch den folgenden Code ausprobiere, werden alle Zellen mit dem Format #.00
(Datumsangaben) formatiert. Ich habe alles versucht, kann mir bitte jemand sagen, was los ist? Ich benutze NPOI.NPOI formatiert alle Zellen auf die gleiche Weise
XSSFWorkbook wb;
var fileName = "C:/tmp/myfile.xlsx";
var outputFileName = "C:/tmp/myoutputfile.xlsx";
using (var file = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite))
{
wb = new XSSFWorkbook(file);
}
XSSFSheet sheet = (XSSFSheet) wb.GetSheetAt(0);
for (int i = 0; i < accountRecs.Count(); ++i) {
var rec = accountRecs[i];
var row = sheet.CreateRow(i);
var dateCell = row.CreateCell(3);
dateCell.SetCellValue(rec.Date);
dateCell.CellStyle.DataFormat = wb.CreateDataFormat().GetFormat("dd/MM/yyyy");
var accountCell = row.CreateCell(4);
accountCell.SetCellValue(rec.Account);
var totalValueCell = row.CreateCell(16);
totalValueCell.SetCellValue(rec.Amount);
totalValueCell.CellStyle.DataFormat = wb.CreateDataFormat().GetFormat("#.00");
}
using (var file = new FileStream(outputFileName, FileMode.Create, FileAccess.Write))
{
wb.Write(file);
file.Close();
}
möglicherweise im Zusammenhang mit http://stackoverflow.com/a/3603750/619252. Verwenden Sie das integrierte Format für "TT/MM/JJJJ". –