关于jxl使用心得

来源:互联网 发布:linux 内核 smp 编辑:程序博客网 时间:2024/05/21 09:40

最近使用jxl做excel模板,遇到几个问题:

1.jxl对列的操作

WritableCellFormat textFormat = new WritableCellFormat(NumberFormats.TEXT);
CellView cv = new CellView();
cv.setFormat(textFormat);
cv.setSize(20*265);

sheet.setColumnView(col,cv);//定义某一列为文本格式

2.jxl对下拉框的实现

for (int ii=1;ii<200;ii++) {

     WritableCellFeatures netContentUnit = new WritableCellFeatures();
     netContentUnit.setDataValidationList(netContentUnitlist);
      netContentUnit.setComment("请输入正确格式:g,kg,ml,l");
      Blank blank = new Blank(netContentCol, ii);
      Blank blank1 = new Blank(shelfLifeCol, ii);
      blank.setCellFeatures(netContentUnit);
      sheet.addCell(blank);
      sheet.addCell(blank1);
}

做这个遇到个头疼的问题,本机装的2013版的excel,下拉框一直出不来,但是数据校验是有做的,后来去同事那试了2007版的就有出来,后来查了资料(还是翻墙找的,度娘不靠谱),发现如果本机装的是2013版本的excel,需要把文件另存为xlsx才会起效果。参考http://stackoverflow.com/questions/18780151/not-able-to-view-combobox-in-excel-using-jxl-api

但是做这种下拉框的代价是,模板的文件大小就会很大,导致打开很慢,所以不适合做成那种导入行数不确定的场景。而且还有个问题是,目前不知道用哪种方式可以直接对某一列进行设置这种下拉框,还有其他对单元格文本长度的校验等目前还没有摸索出来。

3.基本使用

sheet.getSettings().setDefaultColumnWidth(15);//表格的默认列宽
sheet.getSettings().setDefaultRowHeight(400);//表格的默认行高度
sheet.setRowView(0, 1300);//设置某一行的

0 0
原创粉丝点击