Excel数据表格操作01~~使用JXL操作数据

前言

       JXL只能对Excel进行操作,属于比较老的框架,它只支持到Excel 95~2000的版本。现在已经停止更新和维护。但是有些老公司还在用,所有记录下来!

1. 使用JXL导出

       通过WritableWorkbook, WritableSheet, Label这三个对象我们就可以实现Excel文件的导出工作.

2. 实现步骤

2.1 相关Jar包

	 <!--操作jxl-->
      <dependency>
           <groupId>net.sourceforge.jexcelapi</groupId>
           <artifactId>jxl</artifactId>
           <version>2.6.12</version>
       </dependency>

2.2 创建创建可写入的Excel工作薄

	WritableWorkbook workbook = Workbook.createWorkbook(输出流);

2.3 创建工作表

	WritableSheet sheet = workbook.createSheet(工作表名称, 工作表的索引值);

2.4 创建单元格

	Label labelC = new Label(列索引值, 行索引值, "单元格中的内容");
	sheet.addCell(labelC);

2.5 写入到文件

	workbook.write();	//写入数据

2.6 释放资源:

	workbook.close();	//关闭文件

3. 代码实现导出用户列表数据

3.1 UserController中添加方法

	@GetMapping(value = "/downLoadXlsByJxl",name = "使用jxl下载")
	public void downLoadXlsByJxl(HttpServletResponse response){
	    userService.downLoadByJxl(response);
	}

3.2 UserService中的方法

	 //jxl导出
    public void downLoadXlsByJxl(HttpServletResponse response) throws Exception {
        //1.获取输出流
        ServletOutputStream out = response.getOutputStream();
        //2.创建工作簿
        WritableWorkbook workbook = Workbook.createWorkbook(out);
        //3.创建工作表
        WritableSheet sheet = workbook.createSheet("Hello JXL~~", 0);

        //调整列宽  第一个参数: 列的索引值  第二个参数: 1代表一个标准字符的宽度
        sheet.setColumnView(0,5);
        sheet.setColumnView(1,8);
        sheet.setColumnView(2,15);
        sheet.setColumnView(3,10);
        sheet.setColumnView(4,30);

        //4.创建标题
        String[] strings ={"编号","姓名","手机号","入职日期","现住址"};
        Label label=null;
        for (int i = 0; i < strings.length; i++) {
            label = new Label(i, 0, strings[i]);
            sheet.addCell(label);
        }

        //5.查询所有用户
        List<User> users = userMapper.selectAll();
        int rowIndex=1;
        for (User user : users) {
            label=new Label(0,rowIndex,user.getId().toString());
            sheet.addCell(label);
            label=new Label(1,rowIndex,user.getUserName().toString());
            sheet.addCell(label);
            label=new Label(2,rowIndex,user.getPhone().toString());
            sheet.addCell(label);
            label=new Label(3,rowIndex, new SimpleDateFormat("yyyy-MM-dd").format(user.getHireDate()));
            sheet.addCell(label);
            label=new Label(4,rowIndex,user.getAddress().toString());
            sheet.addCell(label);
            rowIndex++;
        }

        //6. 文件导出 一个流 两个头(文件的打开方式 in-line attachment, 文件的下载时mime类型) 表格字符编码 application/vnd.ms-excel
        String filename="一个JXL入门.xls";
        response.setHeader("content-disposition","attachment;filename="+new String(filename.getBytes(),"ISO8859-1"));
        response.setContentType("application/vnd.ms-excel");

        //7.输出
        workbook.write();
        //8.关闭流
        workbook.close();
        out.close();
    }

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自学之路←_←

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值