jba*_*ski 0 java excel apache-poi
在不使用Apache POI的情况下(例如,您手动生成xml以创建电子表格),您可以设置css类
mso-number-format: "General Date"
Run Code Online (Sandbox Code Playgroud)
要么
mso-number-format: "Short Date"
Run Code Online (Sandbox Code Playgroud)
使用Apache POI似乎不太可能,您将被锁定使用单个定义的日期格式,该格式始终依赖于物理服务器的区域设置或硬编码的某些值,而不是上面的客户端操作系统区域设置.
以下是我的代码,用户在美国服务器但在另一个国家/地区生活,希望在其所在地区查看日期,因此这不太好
protected CellStyle getDateCellStyle(SXSSFWorkbook wb)
{
CellStyle style = wb.createCellStyle();
style .setDataFormat(wb.getCreationHelper().createDataFormat().getFormat("MM/dd/yyyy"));
return style;
}
Run Code Online (Sandbox Code Playgroud)
基本上我想用"短日期"或"通用日期"替换"MM/dd/yyyy",但这些选项不起作用.有人有主意吗?我不能只根据服务器所在的位置获取区域设置,因为另一个国家可能会遇到它(因此我无法像其他答案所建议的那样在Java src中获取区域设置).
以前有人处理过这个吗?
在Excel中,有一些内置数据格式没有明确的数据格式字符串.其中一个是"日期",数字格式为id 14.
此格式在Excel中的显示方式取决于Excel语言版本和Windows系统的区域设置.将显示en_US Excel m/d/yy.将显示en_GB Excel dd/mm/yyyy.de_DE Excel将显示dd.mm.yyyy...
因此,如果需要,那么使用
style.setDataFormat((short)14);
Run Code Online (Sandbox Code Playgroud)
内置数字格式更多.请参阅https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/BuiltinFormats.html.但并非所有语言都适用于所有语言的所有Excel版本.但默认的货币格式(5,6,7,8)也会起作用.
例:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
class BuiltInFormats {
public static void main(String[] args) {
try {
Workbook wb = new XSSFWorkbook();
CellStyle builtInShortDate = wb.createCellStyle();
builtInShortDate.setDataFormat((short)14);
CellStyle builtInCurrency = wb.createCellStyle();
builtInCurrency.setDataFormat((short)8);
Sheet sheet = wb.createSheet();
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue(new java.util.Date());
cell.setCellStyle(builtInShortDate);
row = sheet.createRow(1);
cell = row.createCell(0);
cell.setCellValue(1234.56);
cell.setCellStyle(builtInCurrency);
FileOutputStream os = new FileOutputStream("BuiltInFormats.xlsx");
wb.write(os);
os.close();
} catch (IOException ioex) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3709 次 |
| 最近记录: |