`
suko
  • 浏览: 74687 次
  • 性别: Icon_minigender_1
  • 来自: 富安
社区版块
存档分类
最新评论

合并多个excel文件到一个文件

 
阅读更多
package com.ben.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

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.hssf.util.Region;

public class ExcelUtils {
	public static void main(String[] args) throws FileNotFoundException, IOException {
        String fromPath = "E:\\temp\\";// excel存放路径
        String toPath = "E:\\temp\\";// 保存新EXCEL路径
        // 新的excel 文件名
        String excelName = "total";
        // 创建新的excel
        HSSFWorkbook wbCreat = new HSSFWorkbook();
        File file = new File(fromPath);
        int index=0;
        for (File excel : file.listFiles()) {
            // 打开已有的excel
            String strExcelPath = fromPath + "\\" + excel.getName();
            InputStream in = new FileInputStream(strExcelPath);
            HSSFWorkbook wb = new HSSFWorkbook(in);
            for (int ii = 0; ii < wb.getNumberOfSheets(); ii++) {
                HSSFSheet sheet = wb.getSheetAt(ii);
                HSSFSheet sheetCreat = wbCreat.createSheet(sheet.getSheetName()+index++);
                // 复制源表中的合并单元格
                MergerRegion(sheetCreat, sheet);
                int firstRow = sheet.getFirstRowNum();
                int lastRow = sheet.getLastRowNum();
                for (int i = firstRow; i <= lastRow; i++) {
                    // 创建新建excel Sheet的行
                    HSSFRow rowCreat = sheetCreat.createRow(i);
                    // 取得源有excel Sheet的行
                    HSSFRow row = sheet.getRow(i);
                    if(row == null){
                    	continue;
                    }
                    // 单元格式样
                    int firstCell = row.getFirstCellNum();
                    int lastCell = row.getLastCellNum();
                    for (int j = firstCell; j < lastCell; j++) {
                        // 自动适应列宽 貌似不起作用
                        //sheetCreat.autoSizeColumn(j);
                        System.out.println(row.getCell(j));
                        rowCreat.createCell(j);
                        String strVal ="";
                        if (row.getCell(j)==null) {
                            
                        }else{
                             strVal = removeInternalBlank(row.getCell(j).getStringCellValue());
                        }
                        rowCreat.getCell(j).setCellValue(strVal);
                    }
                }
            }
        }
        FileOutputStream fileOut = new FileOutputStream(toPath + excelName + ".xls");
        wbCreat.write(fileOut);
        fileOut.close();
    }
 
    /**
     * 复制原有sheet的合并单元格到新创建的sheet
     * 
     * @param sheetCreat
     *            新创建sheet
     * @param sheet
     *            原有的sheet
     */
    private static void MergerRegion(HSSFSheet sheetCreat, HSSFSheet sheet) {
        int sheetMergerCount = sheet.getNumMergedRegions();
        for (int i = 0; i < sheetMergerCount; i++) {
            Region mergedRegionAt = sheet.getMergedRegionAt(i);
            sheetCreat.addMergedRegion(mergedRegionAt);
        }

    }

    /**
     * 去除字符串内部空格
     */
    public static String removeInternalBlank(String s) {
        // System.out.println("bb:" + s);
        Pattern p = Pattern.compile("\\s*|\t|\r|\n");
        Matcher m = p.matcher(s);
        char str[] = s.toCharArray();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < str.length; i++) {
            if (str[i] == ' ') {
                sb.append(' ');
            } else {
                break;
            }
        }
        String after = m.replaceAll("");
        return sb.toString() + after;
    }
}

分享到:
评论

相关推荐

    使用python将多个excel文件合并到同一个文件的方法

    应用场景:使用pandas把多个相同结构的Excel文件合并为一个。 原始数据:   相关代码: import os import pandas as pd # 将文件读取出来放一个列表里面 pwd = 'test' # 获取文件目录 # 新建列表,存放文件名 ...

    使用Access巧妙合并多个Excel文件

    Union操作符是Access中的一个重要功能,能够将多个查询结果合并到一起。在SQL视图中,我们可以使用Union操作符来合并链接的Excel文件。例如,我们可以使用以下SQL语句: ```sql SELECT * FROM [Sheet1$] UNION ...

    多个EXCEL文件合并到同一个文件

    一个可以将多个EXCEL文件合并到同一个文件EXCEL的宏插件

    C#合并多个Excel到一个Excel

    在IT行业中,尤其是在数据处理和自动化任务中,有时我们需要将多个Excel文件合并成一个单一的文件,以便于管理和分析大量数据。在这个场景下,使用编程语言如C#可以实现这样的功能。本文将深入探讨如何使用C#在...

    将多个excel文件合并为一个excel.docx

    标题中的“将多个excel文件合并为一个excel.docx”实际上是指将多个Excel文件合并到一个单一的Excel文件中,而不是创建一个Word文档。这个过程可以通过编写VBA(Visual Basic for Applications)宏来实现,这是一种...

    合并多个Excel文件的方法 多个文件内容简单放到一个文件里

    今天,我们将讨论如何合并多个Excel文件的方法。 首先,让我们了解为什么需要合并多个Excel文件。例如,在工作中,我们可能需要每天、每周、每月、每年对某些数据进行统计和分析。如果我们手动复制和粘贴每个表,...

    EXCEL 多个文件合并

    这个宏通过用户选择的多个Excel文件,将它们的工作表逐个移动到一个新的工作簿中。 #### 知识点三:理解VBA宏结构 在上述宏中,我们可以看到VBA使用了一些基本的控制结构,如`For`循环、`If`条件语句,以及对象...

    多Excel文件合并到一个文件中(多sheet形式)

    在excel中打开宏编辑器,导入这个文件,执行,然后选择多个excel文件,即可将多个excel文件合并为一个文件

    excel,多个文件合并到一个文件的多个sheet.txt

    在日常工作和数据处理过程中,我们经常会遇到需要将多个Excel文件中的数据整合到一个文件的不同Sheet(工作表)中的需求。这种操作对于数据分析、报告汇总等场景尤为重要。例如,财务部门可能需要将不同月份的销售...

    合并多个excel文件的工具

    这时,使用一个专门的“合并多个Excel文件的工具”就显得尤为重要。 该工具的核心功能在于自动化地将多个独立的Excel文件合并成一个单一的文件,极大地提高了工作效率。这种工具通常具备以下特性: 1. **批量处理*...

    易语言合并多个Excel文件

    本主题聚焦于“易语言合并多个Excel文件”,这通常涉及到数据处理和文件操作的知识点。下面我们将深入探讨这个话题。 首先,我们需要了解易语言的基本结构和语法。易语言的核心思想是“易”,它的语法规则简洁明了...

    matlab将多个excel读取并存到一个excel的不同sheet中.zip

    以下是一个基本的MATLAB脚本示例,演示如何将多个Excel文件读取并合并到一个新Excel文件的不同工作表中: ```matlab % 定义工作目录 dirPath = 'path/to/excel/files'; % 替换为实际Excel文件所在的目录 outFile = ...

    如何解决打开多个excel文件建立多个进程的问题.pdf

    2. 使用进程池技术:进程池技术可以将多个进程合并到一个进程池中,从而减少了系统资源的浪费。我们可以使用编程语言中的进程池库来实现此功能。 3. 使用多线程技术:多线程技术可以使得多个任务并发执行,从而提高...

    Q760776.zip 如何利用c#控制台应用程序将多个excel文件合并成一个excel文件

    通过以上步骤,你可以创建一个C#控制台应用程序,将多个Excel文件合并成一个单一的Excel文件。这不仅可以提高工作效率,还可以减少数据管理的复杂性。在实际项目中,根据具体需求,可能还需要添加更多的功能,如进度...

    怎么把100多个EXCEL文件合并成一个?

    怎么把100多个EXCEL文件合并成一个?_EXCEL_电脑软件_编程_天涯问答_天涯社区 http://wenda.tianya.cn/question/3604d101e5cb8330

    合并多个TXT数据到一个Excel中

    本篇将详细讲解如何将多个用Tab键分隔的TXT文件合并到一个Excel工作表中。 首先,我们要明白TXT文件是一种纯文本格式,它不包含任何格式信息,只存储文字和由特定字符(如Tab或逗号)分隔的数据。在本例中,每个TXT...

    matlab将多个excel读取并存到一个excel的不同sheet中

    通过以上步骤,你可以在MATLAB中实现将多个Excel文件合并到一个新Excel文件的不同工作表中。这个过程不仅可以用于数据整合,还可以用于数据分析前的预处理工作,是MATLAB在处理大量表格数据时的一个实用技巧。

    将多个Excel文件批量导入某个Excel文件中去的VBA宏

    压缩文件中包括一个包含宏代码的Excel文件Sheet Macros.xls以及其他四个测试文件工作表 1~4。 宏的功能为(1)选中Excel表格中的某些行或列,运行某个Macro,自动根据选中的cells创建新的worksheets,worksheets的...

    excel合并多个文件成一个文件

    使用“合并查询”功能,你可以轻松地将多个Excel文件的数据并排或堆叠在一起。 5. **Power Pivot**:如果你需要进行更复杂的数据建模,可以利用Power Pivot。这是一个内置于Excel的高级数据分析工具,支持将多个...

    易语言源码合并多个Excel文件.rar

    这个“易语言源码合并多个Excel文件.rar”压缩包显然包含了用易语言编写的一个程序,其功能是合并多个Excel文件。这涉及到的知识点主要包括易语言的基本语法、文件操作、数据处理以及Excel文件格式的理解。 首先,...

Global site tag (gtag.js) - Google Analytics