4

特定のデータ形式をセルに適用する必要があります。

XSSFCellStyle cellStyle  = workBook.createCellStyle();          
XSSFDataFormat format = workBook.createDataFormat();
cellStyle.setDataFormat(format.getFormat("m/d/yy h:mm"));
dataCell.setCellType(1); //String
dataCell.setCellStyle(cellStyle);

データは書き込まれていますが、問題は、 (Excel アプリケーションで) Excel シートを開いたときにのみフォーマットが適用され、データが含まれるセル内をクリックすることです。
そしてEnterキーを押します。その後、フォーマットが適用されます。

すべてのセルをクリックせずにフォーマットを適用するにはどうすればよいですか?

4

2 に答える 2

3

問題は、セルを文字列に設定していることです。ほとんどの場合、セルの書式設定ルールは数値セルにのみ適用されます。それらは文字列セルには適用されず、フォーマットされません (すでに文字列にフォーマットされているためです!)

XSSFCellStyle cellStyle  = workBook.createCellStyle();          
XSSFDataFormat format = workBook.createDataFormat();
cellStyle.setDataFormat(format.getFormat("m/d/yy h:mm"));
dataCell.setCellStyle(cellStyle);

// Set Cell Type not really needed, the setCellValue does it
dataCell.setCellType(Cell.CELL_TYPE_NUMERIC);
// Set a date value (2012-06-05 08:50)
dataCell.setCellValue(new Date(1338878999635));

それをExcelで開くと、期待どおりになるはずです

于 2012-06-05T06:51:28.797 に答える
1

これは、セル形式を に変更する方法ですDate

 var workBook = new XSSFWorkbook();

 var sheet = workBook.CreateSheet("Sheet1");

 var dateStyle = workBook.CreateCellStyle();

 var dataFormat = workBook.CreateDataFormat();

 dateStyle.DataFormat = dataFormat.GetFormat("M/D/YYYY");

 row.CreateCell(0).SetCellValue(item.ModifiedDate.HasValue ?  
           item.ModifiedDate.Value.ToShortDateString(): "");
 row.Cells[0].CellStyle = dateStyle; // This will change your cell to date 
format.
于 2016-01-21T20:52:03.900 に答える