将二维数组写入excel
问题:如何通过Java代码将二维数组写入一个excel文件单元格区域中?
解决方案:
可以使用apache poi组件实现:
立即学习“Java免费学习笔记(深入)”;
- 引入maven依赖
<dependency> <groupid>org.apache.poi</groupid> <artifactid>poi</artifactid> <version>3.17</version> </dependency> <dependency> <groupid>org.apache.poi</groupid> <artifactid>poi-ooxml</artifactid> <version>3.17</version> </dependency>
- 封装方法
// 创建sheet页 public static void setsheet(string sheetname) { workbook = new xssfworkbook(); sheet = workbook.createsheet(sheetname); } // 创建表头 public static void createhead(list<string> headlist) { // 创建表头,也就是第一行 row = sheet.createrow(0); for (int i = 0; i < headlist.size(); i++) { cell = row.createcell(i); cell.setcellvalue(headlist.get(i)); } } // 创建表内容 public static void createcontent(list<list<string>> contentlist) { // 创建表内容,从第二行开始 for (int i = 0; i < contentlist.size(); i++) { row = sheet.createrow(i + 1); for (int j = 0; j < contentlist.get(i).size(); j++) { row.createcell(j).setcellvalue(contentlist.get(i).get(j)); } } } // 写入文件 public static void writetofile(string filepath) { file = new file(filepath); // 将文件保存到指定的位置 try { workbook.write(new fileoutputstream(file)); system.out.println("写入成功"); workbook.close(); } catch (ioexception e) { e.printstacktrace(); } }
- 示例代码
// ... 省略内容 ... // 表头测试数据 List<String> headList = new ArrayList<>(); headList.add("昵称"); headList.add("年龄"); List<List<String>> contentList = getContent();// 内容测试数据 setSheet("WorkSheet"); // 创建sheet页 createHead(headList); // 设置表头 createContent(contentList); // 设置内容 writeToFile("D://work.xls"); // 写入文件