JAVA操作oracle将数据导入Excel
项目中有需求要把数据库中的数据导入到Excel中,所以在网上找了一下顺便应用到项目中了,记录一下
话不多说,直接上代码:
代码块
代码块语法遵循标准markdown代码,例如:
List<Map<String, Object>> list=null;
String path=request.getSession().getServletContext().getRealPath("/");
String fileName = path+"cust.xls";
File file1=new File(fileName);
WritableWorkbook book = jxl.Workbook.createWorkbook(file1);
// 生成名为"第一页"的工作表,参数0表示这是第一
WritableSheet sheet = book.createSheet("Sheet1", 0);
// 设置字体为宋体,16号字,加粗,颜色为黑色
WritableFont font1 = new WritableFont(WritableFont.createFont("宋体"), 12, WritableFont.BOLD);
font1.setColour(Colour.BLACK);
WritableCellFormat format1 = new WritableCellFormat(font1);
format1.setAlignment(jxl.format.Alignment.CENTRE);
format1.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
Label labelA = new Label(0, 0, "客户编号", format1);
Label labelB = new Label(1, 0, "客户名称", format1);
Label labelC = new Label(2, 0, "客户联系人名称", format1);
Label labelD = new Label(3, 0, "客户联系人电话", format1);
Label labelE = new Label(4, 0, "客户联系人email", format1);
Label labelF = new Label(5, 0, "客户联系人地址", format1);
sheet.addCell(labelA);
sheet.addCell(labelB);
sheet.addCell(labelC);
sheet.addCell(labelD);
sheet.addCell(labelE);
sheet.addCell(labelF);
//查询到所有的数据(mybatis)
list=custmanageService.getCustsInfo();
for(int i=0;i<list.size();i++){
Map<String, Object> map=list.get(i);
if("2".equalsIgnoreCase((String) map.get("custstatus")))
continue;
String str= (String) map.get("custid");
Label labelAi = new Label(0, i + 1, (String) map.get("CUSTID"));
Label labelBi = new Label(1, i + 1, (String) map.get("CUSTFULLNAME"));
Label labelCi = new Label(2, i + 1, (String) map.get("LINKMANNAME"));
Label labelDi = new Label(3, i + 1, (String) map.get("LINKMANPHONE"));
Label labelEi = new Label(4, i + 1, (String) map.get("LINKMANEMAIL"));
Label labelFi = new Label(5, i + 1, (String) map.get("ADDRESS"));
sheet.addCell(labelAi);
sheet.addCell(labelBi);
sheet.addCell(labelCi);
sheet.addCell(labelDi);
sheet.addCell(labelEi);
sheet.addCell(labelFi);
}
book.write();
book.close();