小白必看:Java怎么做表格_极悦注册
专注Java教育14年 全国咨询/投诉热线:444-1124-454
极悦LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 小白必看:Java怎么做表格

小白必看:Java怎么做表格

更新时间:2022-05-25 10:58:37 来源:极悦 浏览3813次

对于使用代码操作表格的方式,每种语言都有不同的方式,尤其是在Java这个库很强大的情况下,基本上就变得容易很多,对于XSL文件,在实际工作中使用到很多,使用代码实现表格的操作和导出,基本上每个程序员都要用到。

 <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi</artifactId>
      <version>4.0.1</version>
    </dependency>

导入坐标之后,就是实现表格的创建和操作了,这里展示的是创建,修改和创建的道理也是一样的。下面是源码

public class POIXls {
    /**
     * 操作xls表格
     * @param workName 表格的名字
     * @param attributeName 第一行的属性名
     * @param savePath 要保存到的位置
     * @param list List集合,用于写入表格的集合(为什么不用map,这个根据实际需求来操作,因为在实际工作中有些表格的属性名字是重复的,使用map会被覆盖)
     * @throws IOException
     */
    public void createWork(String workName, List<String> attributeName,List<List<String>> list,String savePath) throws IOException {
        Workbook wb = new HSSFWorkbook();
        //创建工作表
        Sheet sheet = wb.createSheet(workName);
//        sheet.setDefaultColumnWidth(width);//列宽
//        创建第一行,索引从零开始
        Row index = sheet.createRow(0);//行
        Cell cells = null;//列
        //创建第一行的属性,即工作表的第一行属性的名称
        for (int i = 0; i < attributeName.size(); i++) {
            cells = index.createCell(i);
            cells.setCellValue(attributeName.get(i));
        }
        for (int i = 0; i < list.size(); i++) {
            index = sheet.createRow(i+1);//i+1是因为第一行我们已经创建好了,如果不加1会覆盖前面的信息,为什么列不需要,因为列是从每行的第一列开始
            for (int j = 0; j < list.get(i).size(); j++) {
                Cell cell = index.createCell(j);
                cell.setCellValue(list.get(i).get(j));
            }
        }
        //创建工作表文件夹,将写好的内容写到磁盘
        File file = new File(savePath);
        if (!file.exists()){
            file.mkdir();
        }
        try(FileOutputStream fos = new FileOutputStream(savePath+workName+".xls")){
            wb.write(fos);
            fos.flush();
        }finally {
            if (wb!=null) wb.close();
        }
    }
    public static void main(String[] args) throws IOException {
        POIXls poiXls = new POIXls();
        List<String> listAttributeName = new ArrayList<>();
        listAttributeName.add("姓名");
        listAttributeName.add("性别");
        listAttributeName.add("电话");
        listAttributeName.add("备注");
        List<List<String>> list = new ArrayList<>();
        for (int i=0;i<2;i++) {
            List<String> arrayList = new ArrayList<>();
            arrayList.add("张三丰"+i);
            arrayList.add("男");
            arrayList.add("10086");
            arrayList.add("武当祖师"+i);
            list.add(arrayList);
        }
        poiXls.createWork("测试",listAttributeName,list,"C:\\log\\");
    }

结果:

这就是对于表格的操作,其中列宽是可以指定的,具体可以看代码。

注意:保存地址最好不要直接保存在系统盘下,有可能权限被拒绝,无法写入,如代码中的例子

C:\ ----->这个是写入失败的,权限被拒绝

C:\log\ ---->这样写入就不会出现问题,当然有可能是电脑的原因,具体看自己的使用习惯

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>