Java 使用poi自动调整列宽
我正在使用Java 使用poi自动调整列宽,java,excel,apache-poi,Java,Excel,Apache Poi,我正在使用POI将数据附加到现有excel。但在添加数据时,编辑之前已经存在的excel标题会压缩到小区域。有人能告诉我如何避免这种情况吗?我甚至在添加数据后应用了autoSize,但没有任何用处 FileInputStream inputStream = new FileInputStream(new File("dataexcel.xlsx")); XSSFWorkbook workbook = new XSSFWorkbook(intputStream); XSSFShe
POI
将数据附加到现有excel。但在添加数据时,编辑之前已经存在的excel标题会压缩到小区域。有人能告诉我如何避免这种情况吗?我甚至在添加数据后应用了autoSize
,但没有任何用处
FileInputStream inputStream = new FileInputStream(new File("dataexcel.xlsx"));
XSSFWorkbook workbook = new XSSFWorkbook(intputStream);
XSSFSheet sheet = workbook.getSheetAt(0);
int rowNum = sheet.getPhysicalNumberOfRows();
int cellNum = 1;
Row lastRow = sheet.createRow(rowNum);
for(int i =0 ; i<7; i++)
{
Cell cell = lastRow.createCell(cellNum++);
cell.setCellValue(value);
cell.setCellStyle(generalStyle);
}
FileInputStream-inputStream=newfileinputstream(新文件(“dataexcel.xlsx”);
XSSF工作簿=新XSSF工作簿(intputStream);
XSSFSheet sheet=workbook.getSheetAt(0);
int rowNum=sheet.getPhysicalNumberOfRows();
int-cellNum=1;
Row lastRow=sheet.createRow(rowNum);
对于(int i=0;i使用autoSizeColumn()
方法
下面是你的工作表的例子
+----------+----------+----------+-------------+
| Column A | Column B | Column C | Column D |
+----------+----------+----------+-------------+
| xxx | xxx |This is very long text |
| | | | |
+----------+----------+----------+-------------+
如果是这样,请为列c
,工作表自动调整列大小(2);
。结果将为
+----------+----------+------------------------+-------------+
| Column A | Column B | Column C | Column D |
+----------+----------+------------------------+-------------+
| xxx | xxx |This is very long text |
| | | | |
+----------+----------+------------------------+-------------+
我相信这是Apache POI 3.9及更早版本中的一个已知问题。问题是POI将列宽设置为0。请尝试更新到POI 3.10,看看这是否解决了您的问题
更多信息请访问POI 4.0:尝试调用sheet.autoSizeColumn(*)
调用所有createCell
方法后。我在问题中已经提到,我使用了autosizeColumn,但不起作用。谢谢。关于此问题的任何更新。我正在使用3.10,但它不起作用。这可能是问题所在,让我更新到3.10并检查一下。谢谢