JAVA报表开发-JXL处理EXCEL
1、使用jxl导出基本知识点
通过WritableWorkbook,WritableSheet,Label这三个对象我们就可以实现Excel文件的导出工作。
1、 创建可写入的Excel工作薄
WritableWorkbook workbook= Workbook.createWorkbook(输出流);
2、创建工作表
WritableSheet sheet= workbook.createSheet(工作表的名称, 工作表的索引值);
3、创建单元格
添加文本类单元格
Label labelC = new Label(列索引值, 行索引值, "单元格中的内容"); sheet.addCell(labelC);
4、写入到文件
workbook.write();// 写入数据
5、释放资源:
workbook.close();// 关闭文件
2、案例
/** * 使用jxl导出EXCEL * //编号 姓名 手机号 入职日期 现住址 * @param response */ public void downLoadByJxl(HttpServletResponse response) throws Exception { ServletOutputStream outputStream = response.getOutputStream(); //创建一个工作薄(excel 文件) WritableWorkbook workbook = Workbook.createWorkbook(outputStream); //sheet页的名字 第几个 WritableSheet sheet = workbook.createSheet("第一个sheet", 0); //处理标题 int col 列 , int row 行 , Label l 单元格的内容 Label label = null; String[] titles = new String[]{"编号","姓名","手机号","入职日期","现住址"}; for (int i=0;i<titles.length;i++) { label =new Label(i,0,titles[i]); sheet.addCell(label); } SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd"); //设置列宽 sheet.setColumnView(0,5); //第一个参数:列的索引值 第二个参数:1代表一个标准字母的宽度 sheet.setColumnView(1,8); //第一个参数:列的索引值 第二个参数:1代表一个标准字母的宽度 sheet.setColumnView(2,15); //第一个参数:列的索引值 第二个参数:1代表一个标准字母的宽度 sheet.setColumnView(3,15); //第一个参数:列的索引值 第二个参数:1代表一个标准字母的宽度 sheet.setColumnView(4,30); //第一个参数:列的索引值 第二个参数:1代表一个标准字母的宽度 List<User> userList = userMapper.selectAll(); int rowIndex = 1; for(User user:userList){ sheet.addCell(new Label(0,rowIndex,user.getId().toString()));//列 行 编号 sheet.addCell(new Label(1,rowIndex,user.getUserName()));//列 行 姓名 sheet.addCell(new Label(2,rowIndex,user.getPhone()));//列 行 手机号 sheet.addCell(new Label(3,rowIndex,simpleDateFormat.format(user.getHireDate())));//列 行 入职日期 sheet.addCell(new Label(4,rowIndex,user.getAddress())); rowIndex++; } //文件导出 一个流(outputStream)两个头(文件的打开方式 in-line attachement, 文件的下载时mime类型) String filename="JXL嘻嘻.xls"; response.setHeader("content-disposition","attachment;filename="+new String(filename.getBytes(),"ISO8859-1")); response.setContentType("application/vnd.ms-excel"); workbook.write(); workbook.close(); outputStream.close(); }