package com.vci.client.utils.excel; import java.io.BufferedInputStream; 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.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import com.vci.corba.common.VCIError; public class ExcelDocumentUtils { /** *写回到excel文档 * * @param sheetDataSet *

* 数据集合 * @param path *

* excel文档的路径 * @param name *

* excel文档的名称 * @throws VCIError * @throws IOException * */ public static void writeExcelDocument(String path, String name, List sheetDataSet) throws VCIError, IOException { // 打开工作簿 Workbook workBook = makeWorkbook(name); // sheet for (int sheetIndex = 0; sheetIndex < sheetDataSet.size(); sheetIndex++) { // 创建sheet Sheet sheet = workBook.createSheet(); SheetDataSet dataSet = sheetDataSet.get(sheetIndex); // 设置sheet名称 workBook.setSheetName(sheetIndex, dataSet.getSheet()); List rowDataSet = dataSet.getDataSet(); // 遍历 for (int rowIndex = 0; rowIndex < rowDataSet.size(); rowIndex++) { // ��row Row row = sheet.getRow(rowIndex); if (row == null) { row = sheet.createRow(rowIndex); } String[] rowData = rowDataSet.get(rowIndex); //row for (int columnIndex = 0; columnIndex < rowData.length; columnIndex++) { // cell Cell cell = row.getCell(columnIndex); if (cell == null) { cell = row.createCell(columnIndex); } //赋ֵ cell.setCellValue(rowData[columnIndex]); } } }// end FileOutputStream fileOutputStream = makeFileOutputStream(path, name); workBook.write(fileOutputStream); fileOutputStream.close(); } public static List readExcelDocument(String name,InputStream fileInputStream) throws VCIError, IOException { return readExcelDocument(name, fileInputStream, false); } /** * 读取excel文档的数据 * * @param FileInputStream *

* excel文档 * @param name *

* excel文档的名称 * @throws IOException * */ public static List readExcelDocument(String name,InputStream fileInputStream, boolean isDelNullRow) throws VCIError, IOException { InputStream bufferInputStream = getBufferInputStream(fileInputStream); // 打开工作簿 Workbook workBook = getWorkbook(fileInputStream, bufferInputStream, name); // row int maxRow=0; List dataSet = new ArrayList(); for (int sheetIndex = 0; sheetIndex < workBook.getNumberOfSheets(); sheetIndex++) { Sheet sheet = workBook.getSheetAt(sheetIndex); SheetDataSet sheetDataSet = new SheetDataSet(); sheetDataSet.setSheet(sheet.getSheetName()); dataSet.add(sheetDataSet); //遍历 for (int rowIndex = 0; rowIndex <= sheet.getLastRowNum(); rowIndex++) { Row rowDataSet = sheet.getRow(rowIndex); // sheet if (rowDataSet == null) { if (isDelNullRow) { sheetDataSet.getDataSet().add(new String[0]); } continue; } int currentcolumnSize = rowDataSet.getLastCellNum(); if(maxRow * excel文档的路径 * @param name *

* excel文档的名称 * @throws IOException * */ public static List readExcelDocument(String path, String name) throws VCIError, IOException { FileInputStream fileInputStream = getFileInputStream(path, name); InputStream bufferInputStream = getBufferInputStream(fileInputStream); // 打开工作簿 Workbook workBook = getWorkbook(fileInputStream, bufferInputStream, name); // row int maxRow=0; List dataSet = new ArrayList(); for (int sheetIndex = 0; sheetIndex < workBook.getNumberOfSheets(); sheetIndex++) { Sheet sheet = workBook.getSheetAt(sheetIndex); SheetDataSet sheetDataSet = new SheetDataSet(); sheetDataSet.setSheet(sheet.getSheetName()); dataSet.add(sheetDataSet); //遍历 for (int rowIndex = 0; rowIndex <= sheet.getLastRowNum(); rowIndex++) { Row rowDataSet = sheet.getRow(rowIndex); // sheet if (rowDataSet == null) { continue; } int currentcolumnSize = rowDataSet.getLastCellNum(); // if(maxRow= 0; i--) { if (value.charAt(i) != 0x20) { break; } length--; } return value.substring(0, length); } public static void main(String args[]) throws IOException { try { List sheetDataSet = readExcelDocument("D:\\", "a.xlsx"); writeExcelDocument("D:\\", "b.xlsx", sheetDataSet); } catch (VCIError e) { // TODO Auto-generated catch block e.printStackTrace(); } } }