使用apachePOI将长类型值插入Excel

时间:2013-05-13 12:55:26

标签: java excel apache-poi

我有一个使用Java程序创建的Excel工作表。我需要在Excel工作表中插入Long类型值(如361272004652)。插入正确。但问题是当我打开Excel工作表时,Long值以指数形式显示(如3.61272E+11)。

我需要它的价值。不是指数形式。

我的代码是这样的:

 else if (cellVal instanceof Long) {    
    cell.setCellValue((Long)cellVal);

 ...
 }

其中cellVal是对象类型

1 个答案:

答案 0 :(得分:2)

必须在字段中设置格式。 我在下面的jsp页面中做了这个例子,但它确实有效。 没有必要在float中转换值。将“.0”放在最后,CellStyle属性要小心。

<%@ page import="java.io.FileOutputStream"%>
<%@ page import="org.apache.poi.hssf.usermodel.HSSFSheet"%>
<%@ page import="org.apache.poi.hssf.usermodel.HSSFWorkbook"%>
<%@ page import="org.apache.poi.ss.usermodel.Cell"%>
<%@ page import="org.apache.poi.ss.usermodel.CellStyle"%>
<%@ page import="org.apache.poi.ss.usermodel.DataFormat"%>
<%@ page import="org.apache.poi.ss.usermodel.Row"%>
<%

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(361272004652.0);
style = wb.createCellStyle();
style.setDataFormat(format.getFormat("0"));
cell.setCellStyle(style);

FileOutputStream fileOut = new FileOutputStream("filexample.xls");
wb.write(fileOut);
fileOut.close();    
%>