先介绍一种用jxl 向excel取数据
String msg = "";//打印消息
File read = new File(fileUrl);
InputStream is = new FileInputStream(read.getPath());
jxl.Workbook wb = Workbook.getWorkbook(is);
jxl.Sheet st = wb.getSheet(0);//获得第一个sheet页
int rows = st.getRows();//获得第一列
int rows = st.getRows();
if(rows > 100){
msg = "输入最大行数不能超过100行";
return msg;
}
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
for (int i = 1; i < rows; i++) {
String no = StaticMethod.nullObject2String(st.getCell(0,i).getContents());//getCell里第一个参数为列,第二个参数为行
DateCell dateCell2 = (DateCell)st.getCell(11,i);
String beLaidUpTime = dateFormat.format(dateCell2.getDate());//时间要进行特殊处理
}
利用poi向excel插入数据
CreateTrafficAreaXLS e = new CreateTrafficAreaXLS(filePath);//filepath为目录路径
e.createRow(0);//创建第一行 通常为标题
e.setCell(0, "主题");//第一个参数为列,第二个参数为要填写的内容。
// 设置列宽
e.getSheet().setColumnWidth((short) 0, (short) (200 * 50));
// 设置标题颜色、字体
HSSFFont font = e.getWorkbook().createFont();
font.setColor(HSSFFont.COLOR_RED);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
HSSFCellStyle style = e.getWorkbook().createCellStyle();
style.setFillForegroundColor(HSSFColor.WHITE.index);
style.setFont(font);
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 标题居中
try {
e.exportXLS();
BocoLog.info(this, " 生成Excel文件[成功]");
} catch (Exception e1) {
BocoLog.info(this, " 生成Excel文件[失败]");
e1.printStackTrace();
}
在介绍一种更新现有的excel的方法
Workbook wb = Workbook.getWorkbook(new File(filePath));//打开模板
WritableWorkbook wwb = Workbook.createWorkbook(new File(filePath), wb);//装载模板 这样会调用系统的system.gc 很耗性能
//下面这个方法会很节省性能
WorkbookSettings wbs=new WorkbookSettings();
wbs.setGCDisabled(true);
Workbook wb = Workbook.getWorkbook(excelFile,wbs);
WritableSheet ws2 = wwb.getSheet(2);//获得型号sheet
int num2 = ws2.getRows();//获得行数
for(int i = 0 ; i < num2; i++){//写的不够完整。可以通过类型来进行读取
jxl.write.WritableCell wc2 = ws2.getWritableCell(0, i);
Label lb2 = (Label)wc2;//可以 得到参数的类型是否与lb2的方法里返回的参数类型相同进行存储
lb2.setString("");
}
//一定要关闭
wwb.write(); wwb.close(); wb.close();