java:将多个xls表合并为一个xlsx表

java:将多个xls表合并为一个xlsx表,第1张

java:将多个xls表合并为一个xlsx表
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import jxl.read.biff.BiffException;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;


public class mergeExcel {
    private static POIFSFileSystem fs;
    private static HSSFWorkbook wb;
    private static HSSFSheet sheet;
    private static HSSFRow row;
    static List> list = new ArrayList();

    public static void main(String[] args) throws IOException {
        // 设置标题,即表格第一行,存入集合
        Map map = new HashMap<>();
        map.put("one", "电话");
        map.put("two", "省");
        map.put("three", "市");
        map.put("four", "姓名");
        map.put("five", "");
        map.put("six", "");
        map.put("seven", "");
        map.put("eight", "");
        map.put("nine", "");
        list.add(map);
        // 本地存放excel文件的包路径
        String path = "E:\测试文件\sss";
        // 读取包下所有excel数据传到集合里
        readFile(path);
        // 创建并且将集合数据写入表格
        write();
    }

    
    public static void readFile(String path) throws IOException {
        File file = new File(path);
        // 获取包下所有excel文件的名称集合
        String[] filelist = file.list();
        for (int i = 0; i < filelist.length; i++) {
            // 获取excel文件
            FileInputStream is = new FileInputStream(path + "\" + filelist[i]);
            // 传入excel文件进行处理
            readExcelContent(is);
        }
    }

    
    public static void readExcelContent(FileInputStream is) throws IOException {
        fs = new POIFSFileSystem(is);
        wb = new HSSFWorkbook(fs);
        sheet = wb.getSheetAt(0);
        // excel总行数
        int rowNum = sheet.getLastRowNum();
        row = sheet.getRow(0);
        // 我的excel第一行是标题,数据从第二行开始读取
        for (int i = 1; i <= rowNum; i++) {
            row = sheet.getRow(i);
            Map map = new HashMap<>();
            // 此处为我的固定格式,比如有五列,则map自定义有5个key-value数据,存入list
            map.put("one", row.getCell(0));
            map.put("two", row.getCell(1));
            map.put("three", row.getCell(2));
            map.put("four", row.getCell(3));
            map.put("five", row.getCell(4));
            map.put("six", row.getCell(5));
            map.put("seven", row.getCell(6));
            map.put("eight", row.getCell(7));
            map.put("nine", row.getCell(8));
            list.add(map);
        }
    }

    
    public static void write() throws IOException {
        // 创建表格
        HSSFWorkbook hSSFWorkbook = new HSSFWorkbook();
        // 单元创建(sheet名称)
        HSSFSheet hHSSFSheet = hSSFWorkbook.createSheet("sheet页名称");
        for (int i = 0; i < list.size(); i++) {
            HSSFRow row = hHSSFSheet.createRow(i);
            // 此处为我的固定格式,比如有五列,则map自定义有5个key-value数据插入excel
            row.createCell(0).setCellValue(list.get(i).get("one").toString());
            row.createCell(1).setCellValue(list.get(i).get("two").toString());
            row.createCell(2).setCellValue(list.get(i).get("three").toString());
//            row.createCell(3).setCellValue(list.get(i).get("four").toString());
//            row.createCell(4).setCellValue(list.get(i).get("five").toString());
//            row.createCell(5).setCellValue(list.get(i).get("six").toString());
//            row.createCell(6).setCellValue(list.get(i).get("seven").toString());
//            row.createCell(7).setCellValue(list.get(i).get("eight").toString());
//            row.createCell(8).setCellValue(list.get(i).get("nine").toString());
        }

        FileOutputStream file = new FileOutputStream("E:\测试文件\sss.xlsx");
        hSSFWorkbook.write(file);
        file.flush();

    }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5638259.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存