セルのタイプはgeneralであり、数値ではありません。
これを行う必要がありますcell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
Generalタイプの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