0

Java プログラムを使用して作成された Excel シートがあります。Longタイプ値( like 361272004652)をExcelシートに挿入する必要があります。ちゃんと入れています。しかし、問題は、Excel シートを開いたときに、Long 値が指数形式 (のように3.61272E+11) で表示されていることです。

そのままの値が必要です。指数形式ではありません。

私のコードは次のようなものです:

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

 ...
 }

cellValオブジェクト型です

4

1 に答える 1

2

it's necessary set a format in field. I did this example below in a jsp page, but, it works. Is not necessary convert the value in a float. Put ".0" at end and the CellStyle property takes care.

<%@ 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();    
%>
于 2013-05-13T13:41:50.650 に答える