gpt4 book ai didi

java - POI Java - 带小数的数字单元格

转载 作者:行者123 更新时间:2023-11-29 03:05:04 25 4
gpt4 key购买 nike

我在带有 POI 的单元格中遇到很多数字格式问题。

我需要在单元格中打印一个数字的 11 位小数,并且该单元格具有数字格式以便在您选择数据时求和

我有这段代码:

private void writeDecimal(HSSFRow row, Double data, int position) {
String pattern = "#.0000000000";
HSSFCell celda = row.createCell(position);
CellStyle styleDecimal = styles.get(ITEM_DECIMAL); // Font and alignment
styleDecimal.setDataFormat(libro.getCreationHelper().createDataFormat().getFormat(pattern));
celda.setCellStyle(styleDecimal);
celda.setCellType(Cell.CELL_TYPE_NUMERIC);
celda.setCellValue(data);
}

但结果总是打印较少的小数点,因为 Excel 对数字进行了四舍五入:

Decimal Problem with POI

如果我将 Double 转换为 String,打印 11 位小数,但如果我选择所有数字,它不会求和。

知道如何解决这个问题吗?

谢谢

最佳答案

打开 xlsx 文件选择列,右键单击单元格 -> 设置单元格格式...->自定义->类型 = 0.00000000000 单击确定。

现在无论您在该单元格上写什么,它都会以该格式打印,如果您也选择它,它将显示总和。

按代码

import java.io.FileOutputStream;
import java.io.IOException;

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;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;


public class ChangeXlxsDataFormat {

public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub

Workbook wb = new HSSFWorkbook();
Sheet sheet = (Sheet) wb.createSheet("format sheet");
CellStyle style;
DataFormat format = wb.createDataFormat();
Row row;
Cell cell;
short rowNum = 0;
short colNum = 0;

row = sheet.createRow(rowNum);
cell = row.createCell(colNum);

style = wb.createCellStyle();
row = sheet.createRow(rowNum++);
cell = row.createCell(colNum);

style = wb.createCellStyle();
style.setDataFormat(format.getFormat("0.00000000000"));
cell.setCellStyle(style);
cell.setCellValue(5.12345678908);
row = sheet.createRow(rowNum++);
cell = row.createCell(colNum);
cell.setCellValue(2.12345678908);
FileOutputStream fileOut = new FileOutputStream("test.xls");
wb.write(fileOut);
fileOut.close();


}

}

关于java - POI Java - 带小数的数字单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32563322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com