将数据导入到Excel表格

 

 

目的:将数据库数据导出到Excle中,方便本地存储数据。

具体步骤:将数据库数据读取到本地,通过list数组的方式存储,然后调用HSSFWorkbook 、HSSFSheet、HSSFRow等三个类方法进行数据写入,并通过FILe进行文件创建。

涉及类下载地址:https://archive.apache.org/dist/poi/release/src/

涉及类:

 

 

涉及代码(由于未连接数据库,数组数据为手动数据,数据库数据需要添加for循环,将数据写入数组):

package databaseConn;
/**
 * 用于将数据库中数据转化为list数组进行导出操作。
 * 2021年10月14日
 * chenjc
 * 注意事项:poi存在的依赖包需要加全,否则会出现各种依赖错误,也不要盲目添加,会出现类初始化失败。
 */
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class ExcleDataWrait {

	public static void main(String[] args) {

		String filePath = "F:\\test\\testWraitExcle.xls";
		String sheetName = "学生信息";
		List<String[]> listData = new ArrayList<>();
		// 添加信息数组,每行信息作为一个数组,首行数组作为表头
		String[] data1 = { "ID", "姓名", "性别", "年龄", "出生年月" };
		String[] data2 = { "1", "张晨", "男", "22", "19900211" };
		String[] data3 = { "2", "王猛", "女", "33", "19950211" };
		String[] data4 = { "3", "李帅", "女", "23", "19800211" };
		String[] data5 = { "4", "丁春秋", "男", "21", "19900321" };
		String[] data6 = { "5", "星宿老仙", "女", "44", "19901221" };
		//将数据数组添加至list数组
		listData.add(data1);
		listData.add(data2);
		listData.add(data3);
		listData.add(data4);
		listData.add(data5);
		listData.add(data6);
		ExcleDataWrait excle = new ExcleDataWrait();
		excle.wraitExcel(listData, filePath, sheetName);

	}

		//建立数据导入excle类。
	private void wraitExcel(List<String[]> listData, String filePath, String sheetName) {
		// TODO Auto-generated method stub

		HSSFWorkbook wb = new HSSFWorkbook();
		HSSFSheet sheet = null;
		HSSFRow row = null;
		sheet = wb.createSheet(sheetName);

		// 循环添加每一行数据
		for (int i = 0; i < listData.size(); i++) {
			row = sheet.createRow(i);
			// 循环添加每一个单元格数据
			for (int j = 0; j < listData.get(i).length; j++) {
				row.createCell(j).setCellValue(listData.get(i)[j]);
			}
		}

		// 判断目录中文件是否存在,存在则重新命名为副本,实际应用中建议加时间戳。
		File file = new File(filePath);
		while (file.exists()) {
			filePath = filePath.substring(0, filePath.lastIndexOf(".")) + "副本.xls";
			System.out.println(filePath);
			file = new File(filePath);
		}
		try {
			file.createNewFile();// 新建文件
			wb.write(file);// 将表信息写入文件中
			System.out.println("写入成功");
			wb.close();// 关闭表文件写入
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

运行结果:

 需要做文件是否存在的重复判断。建议用时间戳进行重复后的写入。

文件输出结果:

本地导出表格信息:

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值