gpt4 book ai didi

java - 使用 Java 将 Excel 单元格格式从字符串格式化为数字

转载 作者:行者123 更新时间:2023-12-02 11:43:33 26 4
gpt4 key购买 nike

我正在尝试将第 5 列的格式设置为数字。我知道格式化可以通过 setCellStyle 完成,但是我如何在下面的代码中实现相同的功能?

FileInputStream ExcelFileToRead = null;
HSSFWorkbook wb = null;
FileOutputStream outputStream = null;
short colNum = 5;

try {
ExcelFileToRead = new FileInputStream("config/test/test.xls");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
wb = new HSSFWorkbook(ExcelFileToRead);
} catch (IOException e) {
e.printStackTrace();
}
HSSFSheet sheet = wb.getSheetAt(0);
HSSFCell cell = null;
HSSFRow row = null;

sheet.createRow(0).createCell((short) 6).setCellValue("100");
sheet.createRow(3).createCell(colNum).setCellValue("120");
sheet.createRow(5).createCell(colNum).setCellValue("300");
sheet.createRow(11).createCell(colNum).setCellValue("500");
sheet.createRow(15).createCell(colNum).setCellValue("900");
sheet.createRow(18).createCell(colNum).setCellValue("1000");
sheet.createRow(23).createCell(colNum).setCellValue("10");
sheet.createRow(28).createCell(colNum).setCellValue("20");
sheet.createRow(30).createCell(colNum).setCellValue("30");
sheet.createRow(49).createCell(colNum).setCellValue("40");

outputStream = new FileOutputStream("config/test/test.xls");
wb.write(outputStream);
outputStream.close();

最佳答案

您可以通过将 CellStyle 对象传递给工作表对象的 setDefaultColumnStyle() 方法来设置默认列样式。该格式是从您传递的字符串中解析的。所以 "0" 是一个整数,"0.0" 是保留 1 位小数的小数,"0.00" 是保留 2 位小数的小数等等。还有更多内容,您可以使用 HSSFDataFormat.getBuiltinFormats() 查看格式列表。

您还应该将值作为数字类型而不是字符串传递,否则它们的单元格值将是文本而不是数字。

这是将整列设置为数字的示例。

public static void main(String[] args) throws Exception {
short colNum = 5;

FileInputStream workbookStream = new FileInputStream("config/test/test.xls");
HSSFWorkbook workbook = new HSSFWorkbook(workbookStream);

HSSFSheet worksheet = workbook.getSheetAt(0);

// set column style here
DataFormat dataFormat = workbook.createDataFormat();
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat(dataFormat.getFormat("0"));
worksheet.setDefaultColumnStyle(colNum, cellStyle);

worksheet.createRow(0).createCell((short)6).setCellValue(100);
//...
worksheet.createRow(49).createCell(colNum).setCellValue(40);

FileOutputStream outputStream = new FileOutputStream("config/test/test.xls");
workbook.write(outputStream);
outputStream.close();
}

关于java - 使用 Java 将 Excel 单元格格式从字符串格式化为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48373012/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com