我正在用Java编写一个工具,使用Apache POI API将XML转换为MS Excel。我想将最小单元格宽度设置为100像素。
如何在单元格中设置自定义宽度?
答案 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) { }
}