2016-11-29 17 views
0

这是我有:如何使用POI Excel以编程方式拉伸列以适应文本?

enter image description here

这就是我想要的:

enter image description here

我使用POIExcel创建一个Excel文档和编程设置相应的头文件,如你可以看到下面。然后在我的printSubnetInfo()方法中添加下面的行。我想要做的是确保在打开文档时将列拉伸以适应文本。忽略粗体!

String outputs = "\\outputs\\"; 
String filename = homepath + outputs + customer + ".xls"; 
HSSFWorkbook workbook = new HSSFWorkbook(); 
HSSFSheet sheet = workbook.createSheet("Subnet Information"); 

// Create Excel document header row 
HSSFRow rowhead = sheet.createRow((short)0); 
rowhead.createCell(0).setCellValue("Default Gateway"); 
rowhead.createCell(1).setCellValue("CIDR Signature"); 
rowhead.createCell(2).setCellValue("Netmask"); 
rowhead.createCell(3).setCellValue("Network Address"); 
rowhead.createCell(4).setCellValue("Broadcast Address"); 
rowhead.createCell(5).setCellValue("Lowest Address"); 
rowhead.createCell(6).setCellValue("Highest Address"); 
rowhead.createCell(7).setCellValue("# of Subnet Addresses"); 

// Add rows to Excel document 
for (int rowNum = 1; rowNum < (defaultGWsList).size(); rowNum++) { 
    String defaultGWAddr = defaultGWsList.get(i); 
    printSubnetInfo(subnetInfo, defaultGWAddr, homepath, customer, sheet, rowNum); 
} 

// Create Excel file 
FileOutputStream fileOut = new FileOutputStream(filename); 
workbook.write(fileOut); 
fileOut.close(); 
System.out.println("Your excel file has been generated!"); 

回答

3
sheet.autoSizeColumn(colNumber); 

中的所有数据填充后运行它。

+0

谢谢。这工作。我想大量的列你想循环通过它们。 (int colNumber = 0; colNumber <= 7; colNumber ++){sheet.autoSizeColumn(colNumber); }'' – santafebound

+0

是的。你必须循环逐列。大数据集可能会很慢。 – arturro