2

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.

書いているときに正確な値を表示したい。これどうやってするの?

4

3 に答える 3

4

セルのタイプは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

于 2012-07-22T13:10:04.070 に答える