使用java将数据写入Excel中,并根据数据数量分在不同的sheet中

编程入门 行业动态 更新时间:2024-10-24 12:23:34

使用java将<a href=https://www.elefans.com/category/jswz/34/1771445.html style=数据写入Excel中,并根据数据数量分在不同的sheet中"/>

使用java将数据写入Excel中,并根据数据数量分在不同的sheet中

使用java将数据写入Excel中,并根据数据数量分在不同的sheet中

今天任务是将数据写入Excel中(数据直接写在main函数里),使用的开发平台是IDEA。目前的需求是将有限数量的数据,比如13个数据依次写入Excel中,每满五个就自动建一个sheet存入。

引入jar包

因为我们用的是IDEA的开发环境,无需导入外部jar包,只需要将jxl包的代码直接写入pom.xml中即可:

<dependency><groupId>net.sourceforge.jexcelapi</groupId><artifactId>jxl</artifactId><version>2.6.12</version></dependency>```## JAVA实现类的编写:
package com.bjsd.apps.bidding.service.impl;import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;public class ExcelOperaation {public void writeExcel(String path, List<String[]> list, String sheet, String[] title) {try {// 创建Excel工作薄WritableWorkbook wwb = null;// 新建立一个jxl文件OutputStream os = new FileOutputStream(path);wwb = Workbook.createWorkbook(os);// 添加第一个工作表并设置第一个Sheet的名字WritableSheet sheets = wwb.createSheet(sheet, 1);Label label;for (int i = 0; i < title.length; i++) {// Label(x,y,z) 代表单元格的第x+1列,第y+1行, 内容z// 在Label对象的子对象中指明单元格的位置和内容// label = new Label(i, 0, title[i]);label = new Label(i, 0, title[i], getHeader());// 设置列宽sheets.setColumnView(i, 20);// sheets.setColumnView(4, 100);// 将定义好的单元格添加到工作表中sheets.addCell(label);}// 设置单元格属性WritableCellFormat wc = new WritableCellFormat();// 设置居中wc.setAlignment(Alignment.CENTRE);// 设置边框线wc.setBorder(Border.ALL, BorderLineStyle.THIN);for (int i = 0; i < list.size(); i++) {String[] arrData = list.get(i);for (int j = 0; j < arrData.length; j++) {// 向特定单元格写入数据// sheets.setColumnView(j, 20);label = new Label(j, 1 + i, arrData[j], wc);sheets.addCell(label);}}// 写入数据wwb.write();// 关闭文件wwb.close();}catch (Exception e) {e.printStackTrace();return;}}public static WritableCellFormat getHeader() {// 定义字体WritableFont font = new WritableFont(WritableFont.TIMES, 10, WritableFont.BOLD);try {// 黑色字体font.setColour(jxl.format.Colour.BLACK);}catch (WriteException e1) {e1.printStackTrace();}WritableCellFormat format = new WritableCellFormat(font);try {// 左右居中format.setAlignment(jxl.format.Alignment.CENTRE);// 上下居中format.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);// 黑色边框format.setBorder(Border.ALL, BorderLineStyle.THIN, jxl.format.Colour.BLACK);// 黄色背景format.setBackground(jxl.format.Colour.YELLOW);}catch (WriteException e) {e.printStackTrace();}return format;}public static void main(String args[]) {ExcelOperaation excel = new ExcelOperaation();// 文件保存路径String path = "E:/test.xlsx";// 准备测试数据List<String[]> list = new ArrayList<>();for (int i = 0; i < 5; i++) {String content[] = { i + "", "hello" };list.add(content);}// sheet页名称String sheet = "hhh";// 列名String title[] = { "id", "content" };excel.writeExcel(path, list, sheet, title);}
}

运行代码,在E盘得到一个名为excel文档,里面存放了五行两列的数据,sheet名为:hhh:


接下来我们的任务就是添加更多的数据,并且根据数据数量就数据存放在不同的sheet(sheet名自定义)中,运用代码:int totle = result.size();//获取List集合的size int mus = 5;//每个工作表格最多存储5条数据(注:excel表格一个工作表可以存储65536条) int avg = totle / mus; for (int i = 0; i < avg + 1; i++) { WritableSheet ws = wwb.createSheet("列表" + (i + 1), i); //创建一个可写入的工作表

该循环代码可以实现每5个数据重新建一个新的sheet,直到数据读取结束,从而实现我们的要求。(sheet名可自定义)

更多推荐

使用java将数据写入Excel中,并根据数据数量分在不同的sheet中

本文发布于:2023-07-28 22:03:15,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1334568.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据   数量   java   sheet   Excel

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!