gpt4 book ai didi

java - 写入长值以在 apache POI 中表现出色

转载 作者:行者123 更新时间:2023-11-29 05:57:13 27 4
gpt4 key购买 nike

当我使用 Apache POI 将长值写入 Excelsheet 中的单元格时,它会使用一些数字操作来写入它。示例:

cell = row.createCell(6);
cell.setCellValue(someObt.getLongValue());
// long value returned is 365646975447
// in excel sheet, it is written as 3.65647E+11.
// but when i click on the cell, i can see 365646975447 as the value.

我希望它在我写的时候显示准确的值。我该怎么做?

最佳答案

单元格是通用类型而不是数字。

你需要这样做 cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);

如果您在常规类型的 Excel 单元格中手动复制粘贴 365646975447,它将显示 3.65647E+11。如果将其更改为数字,则它会正确显示。

试试这个:

import java.io.FileOutputStream;

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.ss.usermodel.Row;

public class Test
{
public static void main(String[] args)
throws Exception
{
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("format sheet");
CellStyle style;
DataFormat format = wb.createDataFormat();
short rowNum = 0;
short colNum = 0;

Row row = sheet.createRow(rowNum++);
Cell cell = row.createCell(colNum);
cell.setCellValue(365646975447.0);
style = wb.createCellStyle();
style.setDataFormat(format.getFormat("0.0"));
cell.setCellStyle(style);


FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
}
}

同时检查: http://poi.apache.org/spreadsheet/quick-guide.html

关于java - 写入长值以在 apache POI 中表现出色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11600500/

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