こんにちは、JavaでapachePOIを使用してxlsファイルを生成する作業を進めています。私は日付の列を持っています。今問題は、ExcelがデフォルトのOS設定から日付形式を選択することです。ExcelでapachePOIを使用してJavaでOSのデフォルト日付形式を使用しないように制限する
私はExcelにdd-mm-yyyyを常に選択させるという問題があります。しかし、OS設定が米国のシステムでは、mm-dd-yyyyが選択されます。したがって、17〜2017年のような有効な日付は、17日目がないため米国のシステムで無効になります。
私の質問には、Excelに必要な日付形式を使用させることができます。つまり、OSの設定を使用しないようにExcelを制限できますか?可能でない場合は、他の回避策に感謝します。ありがとう。
コード:
private static void doCreate() throws FileNotFoundException, ParseException {
Workbook workbook;
Row row;
Sheet spreadsheet;
workbook = new HSSFWorkbook();
spreadsheet = workbook.createSheet("Order Details");
dateCellStyle = workbook.createCellStyle();
// LocaleUtil.setUserTimeZone(LocaleUtil.TIMEZONE_UTC);
// // Locale.setDefault();
// final String excelFormatPattern = DateFormatConverter.convert(Locale.JAPANESE, "dd MMMM, yyyy");
// // final DataFormatter dataFormatter = new DataFormatter(Locale.ENGLISH);
final short df = workbook.createDataFormat().getFormat("dd-mm-yyyy");
dateCellStyle.setDataFormat(df);
final String inputDate = "2017-10-24";
row = spreadsheet.createRow(0);
final Cell cell = row.createCell(0);
final Date creationDate = inputCreationDateFormat.parse(inputDate);
cell.setCellValue(outputCreationDateFormat.format(creationDate));
cell.setCellStyle(dateCellStyle);
final FileOutputStream out = new FileOutputStream(new File("Writesheet.xls"));
try {
workbook.write(out);
workbook.close();
} catch (final IOException e) {
}
System.out.println("Writesheet.xls written successfully");
}
}