各位大哥,
请问jexcel写的excel文件能用2003打开吗??我做的excel表,都有错误,不管我往里面写入什么数据,用2003打开看都没有任何东西!
若是不支持,市面上有没有更好的,更易用的操作excel的API
谢谢!
请问jexcel写的excel文件能用2003打开吗??我做的excel表,都有错误,不管我往里面写入什么数据,用2003打开看都没有任何东西!
若是不支持,市面上有没有更好的,更易用的操作excel的API
谢谢!
至于2007还没有试过!
你把Excel另存为xml文件后打开来看看。
可以啊,做过,我给个例子,可以看下public class StatiPersonTable { /**
* 开始显示的行号.
*/
private static int START_ROWS = 0;
/**
* 开始显示的列号.
*/
private static int START_COLS = 0; /**
* 从数据库读数据,写入Excel.
*
* @param os
* 数据流,如果是写本地文件的话,可以是FileOutputStream;
* 如果是写Web下载的话,可以是ServletOupputStream
* @param vos
* List
* @throws Exception
* 方法内的父类异常有SQLException和IOException
*/
public void export(OutputStream os, List vos) throws Exception { // 初始化报表
WritableWorkbook wbook = Workbook.createWorkbook(os); // 建立excel文件
WritableSheet wsheet = wbook.createSheet("用户统计", 0); // sheet名称
Label wlabel = null; // Excel表格的Cell
jxl.write.Number number = null;
WritableFont font1 = new WritableFont(WritableFont.ARIAL, 8,
WritableFont.BOLD, false,
jxl.format.UnderlineStyle.NO_UNDERLINE,
jxl.format.Colour.BLACK); // 或设置字体格式为excel支持的格式
WritableCellFormat format1 = new WritableCellFormat(font1);
format1.setAlignment(jxl.format.Alignment.CENTRE);
format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
format1.setWrap(true); // 初始化
int rows = START_ROWS;
int cols = START_COLS; // 标题
String[] titles = {"部门编号", "部门名称", "部门描述", "用户数(人)"};
for (int i = 0; i < titles.length; i++) {
wlabel = new jxl.write.Label(cols, rows, titles[i], format1);
wsheet.addCell(wlabel);
++cols;
} // 报表内容
int approveVosSize = 0;
if (vos != null && !"".equals(vos)) {
approveVosSize = vos.size();
}
int totalSize = 0;
for (int i = 0; i < approveVosSize; i++) {
++rows;
cols = START_COLS;
StatiPersonVO approveVo = (StatiPersonVO) vos.get(i);
number = new jxl.write.Number(cols, rows, i + 1);
wsheet.addCell(number);
++cols;
wlabel = new jxl.write.Label(cols, rows, approveVo.getName());
wsheet.addCell(wlabel);
++cols;
wlabel = new jxl.write.Label(cols,
rows,
approveVo.getDescription());
wsheet.addCell(wlabel);
++cols; number = new jxl.write.Number(cols, rows, approveVo.getUsernum());
wsheet.addCell(number);
++cols; totalSize += approveVo.getUsernum(); }
if (approveVosSize != 0) { // 显示已分配用户总数
++rows;
cols = START_COLS + 2;
wlabel = new jxl.write.Label(cols, rows, "已分配用户总数:");
wsheet.addCell(wlabel);
++cols;
number = new jxl.write.Number(cols, rows, totalSize);
wsheet.addCell(number);
} wbook.write(); // 写入文件
wbook.close();
os.flush();
os.close();
}
}