`
yangjb
  • 浏览: 32111 次
  • 性别: 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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics