Java apache POI(Excel)中的自动换行
我有一个java程序,它将头和数据作为输入,并生成一个excel文件 但是,有时当标题值较长且列数较多时,我的excel工作表往往会过宽 由于标题的原因,我必须向下向右滚动才能看到尾端列的内容 有没有办法解决这个问题,如果单元格中的内容大于x值,则自动换行并自动调整行高和列宽 我正在寻找的粗略算法是:Java apache POI(Excel)中的自动换行,java,apache-poi,xssf,Java,Apache Poi,Xssf,我有一个java程序,它将头和数据作为输入,并生成一个excel文件 但是,有时当标题值较长且列数较多时,我的excel工作表往往会过宽 由于标题的原因,我必须向下向右滚动才能看到尾端列的内容 有没有办法解决这个问题,如果单元格中的内容大于x值,则自动换行并自动调整行高和列宽 我正在寻找的粗略算法是: if(content.size is more then 50 chars){ - apply auto wrap with centred text - adjus
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
}
如果有人能告诉我一些网上的例子
谢谢你的阅读 您应该能够通过单元格样式来实现这一点,我已经试着用一个示例来说明:
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();
}
}
}
祝你好运