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();
}
}
}