导出excel文件,Java可运行代码

在项目中,经常会用到excel文件的导入导出能力,根据实际情况做一下微调整即可用。

1、首选,需要下载 jxl.jar

2、在此,将jar设置到环境变量或引入工程里

3、在接下来就是代码了:

public class ExportExcel {

    public static void main(String[] args) throws Exception {

        java.util.List<Orgs> list = new java.util.ArrayList();

        Orgs ors1 = new Orgs();
        ors1.setGpCode("swwww");
        ors1.setGpName("wwwww");
        list.add(ors1);

        Orgs ors2 = new Orgs();
        ors2.setGpCode("swww2w");
        ors2.setGpName("deeeeee");
        list.add(ors2);
        //list 里放了两行数据, 同时这里也可以放数组

        String[] exceltitle = {"代码","名称"};   //excel列名称

        exportExcle(exceltitle, list,"D:\\test\\tests.xls");
    }

    /*
        生成excel 文件
        list  数据源
        path  文件路径
     */
    public static  void  exportExcle(String[] exceltitle, java.util.List<Orgs> list, String path) throws Exception {
        jxl.write.WritableWorkbook book = null;
        try {
            // 创建一个Excel文件对象
            book = jxl.Workbook.createWorkbook(new java.io.File(path));
            jxl.write.WritableFont contentFont = new jxl.write.WritableFont(jxl.write.WritableFont.createFont("仿宋"), 12, jxl.write.WritableFont.NO_BOLD);
            jxl.write.WritableCellFormat contentFormat = new jxl.write.WritableCellFormat(contentFont);
            System.out.println();
            // 创建Excel第一个选项卡对象
            jxl.write.WritableSheet sheet = book.createSheet("one",0);

            if(exceltitle == null || exceltitle.length <=0) return;

            //设置表头,第一行内容;Label参数说明:第一个是列,第二个是行,第三个是要写入的数据值,索引值都是从0开始
            for(int i=0; i<exceltitle.length; i++){
                jxl.write.Label label = new jxl.write.Label(i, 0, exceltitle[i], contentFormat);  //第一个参数代表列;第二个代表行
                //对应为第x列第y行的数据,比如:第一列第一行即 0,0; 第二列第一行即1,0

                sheet.addCell(label);  //添加单元格到选项卡中
            }

            // 遍历集合并添加数据到行,每行对应一个对象
            for (int i = 0; i < list.size(); i++) {
                Orgs s = (Orgs)list.get(i);
                // 表头占据第一行,所以下面行数是索引值+1;// 其他的跟上面添加表头一样添加单元格数据,这里为了方便直接使用链式编程
                sheet.addCell(new jxl.write.Label(0, i + 1, s.getGpCode()));
                sheet.addCell(new jxl.write.Label(1, i + 1, s.getGpName()));

            }
            // 写入数据到目标文件
            book.write();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                // 关闭
                book.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

class Orgs{
    String gpName;   //名称
    String gpCode;   //代码

    public String getGpName() {
        return gpName;
    }

    public void setGpName(String gpName) {
        this.gpName = gpName;
    }

    public String getGpCode() {
        return gpCode;
    }

    public void setGpCode(String gpCode) {
        this.gpCode = gpCode;
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

产技一体

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

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

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

打赏作者

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

抵扣说明:

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

余额充值