`
yangjb
  • 浏览: 33243 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

多个excel合并到一个excel中

    博客分类:
  • java
阅读更多
多个Excel要把他们合并到一个Excel里面,涉及是Excel的读取和Sheet的合并。
package com.redbaby.test;

package com.redbaby.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.math.BigDecimal;
import java.text.NumberFormat;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
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 b {
public static void main(String[] args) throws FileNotFoundException{
String[] file  = new String[]{"C:\\sample.xls","C:\\sample2.xls"};
    FileInputStream in = null;
    FileOutputStream out = new FileOutputStream("C:\\sample3.xls");
    HSSFWorkbook workbook = null;
    HSSFWorkbook wb = new HSSFWorkbook();
   
      try {
      for(int k = 0; k<file.length;k++){
      in = new FileInputStream(new File(file[k]));
  workbook = new HSSFWorkbook(new POIFSFileSystem(in));
  // 根据读出的Excel,创建Sheet  
  HSSFSheet sheet = wb.createSheet();
  //读取sheet
  HSSFSheet childSheet1 = workbook.getSheetAt(0);
  for(int i = 0;i<=childSheet1.getLastRowNum();i++){
  HSSFRow r = sheet.createRow(i);  
      HSSFRow row = childSheet1.getRow(i);
      // 判断是否为空,因为可能出现空行的情况  
      if(null!=row){
      //循环读取列
      for(int j = 0; j<row.getLastCellNum();j++){
    // 根据读取的列,创建列  
              HSSFCell c = r.createCell((short) j);
              HSSFCell cell = row.getCell(j);
              // 将值赋给单元格  
              String value = ""; 
              if(null!=cell){
              switch (cell.getCellType()) {
              case HSSFCell.CELL_TYPE_NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(cell)) {  
                        // 如果是Date类型则 ,获取该Cell的Date值  
                        value = HSSFDateUtil.getJavaDate(  
                                cell.getNumericCellValue())  
                                .toString();  
                    } else {// 纯数字,这里要判断是否为小数的情况,因为整数在写入时会被加上小数点  
                        String t = cell.getNumericCellValue()  
                                + "";  
                        BigDecimal n = new BigDecimal(cell  
                                .getNumericCellValue());  
                        // 判断是否有小数点  
                        if (t.indexOf(".") < 0) {  
                            value = n.intValue() + "";  
                        } else {  
                            // 数字格式化对象  
                            NumberFormat nf = NumberFormat  
                                    .getInstance();  
                            // 小数点最大两位  
                            nf.setMaximumFractionDigits(2);  
                            // 执行格式化  
                            value = nf.format(n.doubleValue());  
                        }  
                    }  
break;
case HSSFCell.CELL_TYPE_STRING: // 字符串型  
                    value = cell.getRichStringCellValue()  
                            .toString();  
                    break;  
                case HSSFCell.CELL_TYPE_FORMULA:// 公式型  
                    // 读公式计算值  
                    value = String.valueOf(cell  
                            .getNumericCellValue());  
                    break;  
                case HSSFCell.CELL_TYPE_BOOLEAN:// 布尔  
                    value = " " + cell.getBooleanCellValue();  
                    break;  
                /* 此行表示该单元格值为空 */ 
                case HSSFCell.CELL_TYPE_BLANK: // 空值  
                    value = " ";  
                    break;  
                case HSSFCell.CELL_TYPE_ERROR: // 故障  
                    value = " ";  
                    break;  

default:
value = cell.getRichStringCellValue().toString();  
}
              }else{
              value = "";
              }
              c.setCellValue(value);
      }
      }
  }
  wb.write(out);
      }
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
0
0
分享到:
评论

相关推荐

    C#合并多个Excel到一个Excel

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

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

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

    多个excel合并到一个excel内说明

    ### 多个Excel合并到一个Excel内的方法及VBA代码详解 #### 一、概述 在日常工作和学习中,我们经常需要将多个Excel文件合并到一个Excel文件中,以方便进行数据分析、汇总等工作。手动复制粘贴的方式不仅耗时耗力,...

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

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

    多个EXCEL表合并工具

    - 合并Excel表格主要是通过读取多个工作簿中的数据,然后将其整合到一个新的工作簿或工作表中。关键在于保持数据的一致性和完整性,确保在合并过程中不丢失任何信息。 2. **工具的使用步骤**: - 首先,用户需要...

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

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

    python 将目录中所有excel合并到一个excel中 openpyxl 复制sheet工作表到另一个工作簿

    为了提高效率和便于管理,我们可以使用Python的库如openpyxl将这些文件合并到一个单一的工作簿中。openpyxl是一个强大的库,用于读取和写入Excel的xlsx/xlsm/xltx/xltm格式文件。下面我们将详细介绍如何利用openpyxl...

    php多个excel合并工具

    标题中的"php多个excel合并工具"表明我们要讨论的是一个使用PHP编程语言编写的程序,该程序能够处理多个Excel文件的合并操作。下面将详细阐述相关知识点。 1. **PHP与Excel交互**: PHP通过一些库,如PHPExcel或...

    利用POI合并多个Excel表

    本教程将深入探讨如何利用Apache POI库来合并多个Excel工作表,这对于处理大量数据或者整合来自不同来源的数据时非常有用。 首先,我们需要了解Apache POI的基本概念。POI提供了HSSF(Horrible Spreadsheet Format...

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

    在工作中,我们经常需要合并多个Excel文件,以便更好地分析和处理数据。使用Access可以巧妙地合并多个Excel文件,使得数据处理更加方便快捷。本文将介绍使用Access合并多个Excel文件的步骤和技术。 一、创建对Excel...

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

    通过以上介绍,我们可以了解到如何使用VBA宏来实现多个Excel文件合并到一个文件的不同Sheet中的过程。这对于提高工作效率和数据处理能力具有重要意义。希望本文能够帮助您更好地理解和运用这些技术点。

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

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

    EXCEL 多个文件合并

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

    多个EXCEL合并工具

    "多个EXCEL合并工具"就是为此目的设计的实用软件,它可以极大地提高工作效率,简化繁琐的手动操作。这个工具提供了行合并、列合并以及单元格合并等多种功能,满足了不同场景下的数据整合需求。 首先,行合并功能是...

    多个Excel合并代码

    在数据分析和处理中,有时我们需要将多个Excel文件合并到一个工作簿中,以便于集中管理和分析数据。在本文中,我们将深入探讨如何实现这个目标,主要聚焦于编程方法,特别是使用Python的pandas库来完成这项任务。...

    《如何将EXCEL中多个个BOM汇总到一个表中》附件“合并多个BOM表”

    通过以上步骤,你就可以成功地将多个Excel中的BOM表汇总到一个表中,实现数据的集中管理和分析。这个过程不仅可以提高工作效率,也有助于避免因数据分散而产生的错误。对于大型制造企业而言,有效的BOM管理是优化...

    多个EXCEL工作表合并

    使用批处理方式将多个EXCEL工作蒲文件合并成一个总表 在D盘创建一个 abc123 的文件夹把 bat文件和Excel文件一起放到这个文件夹 运行一下bat文件就可以 会生成一份ALL开头的excel文件

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

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

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

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

Global site tag (gtag.js) - Google Analytics