写一个长值以在apache POI中表现出色
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写一个长值以在apache POI中表现出色相关的知识,希望对你有一定的参考价值。
[当我使用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);
如果手动复制粘贴365646975447到类型为General的Excel单元格中,将显示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
另一答案
在POI版本4.1中,API如下:
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.xssf.usermodel.XSSFCell;
...
XSSFCell cell = row.createCell(key);
cell.setCellType(CellType.NUMERIC);
以上是关于写一个长值以在apache POI中表现出色的主要内容,如果未能解决你的问题,请参考以下文章
编译 C++ 代码以在 Windows 和 Linux 中表现相同 [关闭]
iOS 7.0.3 - 在 iPad 3 上表现糟糕,但在模拟器中表现出色
markdown 以下是一些让您在Cacher中表现出色的技巧。