我有一个Java程序,它将标头和数据作为输入并生成一个excel文件。
但是,有时当标头值很长且列数更多时,我的Excel工作表往往会变得不必要地变宽。
由于标题的原因,我将不得不向下滚动以查看尾端列的内容。
有没有一种方法可以解决此问题,如果单元格中的内容较大,然后说x值,则自动换行发生并自动调整行高,固定列宽。
我正在寻找的粗略算法是:
if(content.size is more then 50 chars){ - apply auto wrap with centred text - adjust the row height accordingly - adjust all the cells in the column accordingly }
如果有人可以指出一些在线示例。
谢谢阅读!
您应该可以使用Cell样式实现此目的,我尝试将一个示例组合起来显示:
public class SO{ public static void main(String[] args) { try { FileInputStream is = new FileInputStream(new File("D:\\Users\\user2777005\\Desktop\\bob.xlsx")); XSSFWorkbook wb = new XSSFWorkbook(is); String header = "123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789"; Sheet sheet = wb.getSheet("Sheet1"); sheet.setColumnWidth(0, 18000); Row row = sheet.createRow(0); Cell cell = row.createCell(0); if(header.length() > 50){ //Length of String for my test sheet.setColumnWidth(0, 18000); //Set column width, you'll probably want to tweak the second int CellStyle style = wb.createCellStyle(); //Create new style style.setWrapText(true); //Set wordwrap cell.setCellStyle(style); //Apply style to cell cell.setCellValue(header); //Write header } wb.write(new FileOutputStream(new File("D:\\Users\\user2777005\\Desktop\\bob.xlsx"))); } catch (IOException e) { e.printStackTrace(); } } }
祝好运!