如何在Apache POI单元格中设置最小宽度?

时间:2015-02-14 12:12:54

标签: java excel apache-poi

我正在用Java编写一个工具,使用Apache POI API将XML转换为MS Excel。我想将最小单元格宽度设置为100像素。

如何在单元格中设置自定义宽度?

1 个答案:

答案 0 :(得分:0)

我只使用了这个函数sheet.setColumnWidth(colIdx, width*256)来设置列宽,我的应用程序使用1 ... n值缩放,而* 256是必须要做的才能看到好的结果。

此示例代码列出了导入,我(可能)使用SXSSF序列化编写器,但POI文档有点难以理解所有差异。此示例首先打开基本xlsx文件,然后将值写入数据表。基本文件在Excel中制作的图表和图纸很少,并且不想在POI中重新创建。

import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.DataFormat;
//import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Cell;
//import org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;

  public void doIt() {
        OPCPackage opc =  OPCPackage.open(file);
        XSSFWorkbook xwb = new XSSFWorkbook(opc); // (XSSFWorkbook)WorkbookFactory.create(file);        
        SXSSFWorkbook wb = new SXSSFWorkbook(xwb, 500); //XSSFWorkbook wb = xwb;
        ...clip....do something...
        try { wb.dispose(); } catch (Exception e) { }
        try { opc.close(); } catch (Exception e) { }
    }