1、以0开头的数字用Number类型存储
异常:写进Excel后,开头的0自动消除
解决:用Lable存储
顺便说下 正则表达式:
0开头数字: String regex="^0\\d*$";
非0开头数字:String regex2=^[1-9]\\d*$";
数字:String regex2="[0-9]*";
数字:
类似问题参考:
通过阅读jxl文档,问题已经解决,附代码如下:
WritableCellFormat contentFromart = new WritableCellFormat(NumberFormats.TEXT);
jxl.write.Label labelCFC2 = new jxl.write.Label(0,15, " 01234567890123456789 ", contentFromart);
sheet.addCell(labelCFC2);
结果和Lable存储存储效果是一样
参考:http://topic.csdn.net/u/20070803/15/5fc74e66-09dd-4db4-b42f-b2337b187cd9.html
2、view.setAutosize(true);自动改变行高和列宽没效果
view.setAutosize(true);自动改变行高和列宽。。。
不过,这个设置貌似对行高没有影响,只会影响列宽。。。并且view.setSize(int num)还必须存在,否则,setAutosize不会发生作用。。。
view.setSize(1*256)正常显示
参考:http://topic.csdn.net/u/20110413/09/0b61cada-8122-4a42-8ca5-47e47f2eefc5.html
3、CellView使用无效果
WritableCellFormat wcf = new WritableCellFormat(wf);
wcf.setAlignment(Alignment.CENTRE);
CellView cv = new CellView();
cv.setAutosize(true);
cv.setSize(1*256);
cv.setFormat(wcf);
sheet.setRowView(0,cv); //效果应用于第一行
结果没有效果
但是对于Column有效果 sheet.setColumnView(0,cv);
sheet.getRowView(0).getFormat()); //结果为null
void | setRowView(int row, CellView view) Sets the view for this column |
void | setColumnView(int col, CellView view) Sets the view for this column |
两个解释是一样的,奇怪,可能是jxl的问题
参考:http://www.iteye.com/problems/75380
4、代码覆盖
for()
{
if()
{
}
code......
}
code会覆盖if中的内容,所以单元格效果在if中不能显现
解决:if(){} else{}
5、边框出现不整齐
public static void writeExcel(String sheetName,ArrayList<ArrayList<String>> rowcol2value)
如果rowcol2value是交错二维数组
在设置边框时出现不整齐的效果,因为有些单元格没有值,就没有设置边框
所以在之前用null值将rowcol2value填整齐