1. 程式人生 > >Poi的Excel的匯入匯出 支援2007

Poi的Excel的匯入匯出 支援2007

需要匯入

poi-3.7.jar

commons-io-2.4.jar

Excel2003匯出 

import java.io.File;
import java.io.FileOutputStream;
import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;


public class poiexp {
public static void main(String[] args) {
String[] title={"id","name","sex"};
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
HSSFRow row = sheet.createRow(0);
HSSFCell cell=null;
for (int i = 0; i < title.length; i++) {
cell=row.createCell(i);
cell.setCellValue(title[i]);
}
for (int i = 1; i <= 10; i++) {
HSSFRow nextrow =sheet.createRow(i);
HSSFCell Cell1 = nextrow.createCell(0);
Cell1.setCellValue("id"+i);
Cell1 = nextrow.createCell(1);
Cell1.setCellValue("name"+i);
Cell1 = nextrow.createCell(2);
Cell1.setCellValue("nv"+i);
}
File file =new File("d:/wook.xls");
try {
file.createNewFile();
FileOutputStream stream=FileUtils.openOutputStream(file);
workbook.write(stream);
} catch (Exception e) {

e.printStackTrace();
}

}
}

Excel2003匯出入

import java.io.File;
import org.apache.commons.io.FileUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;


public class ExcelRead {
public static void main(String[] args) {
File file =new File("d:/wook.xls");
try {
HSSFWorkbook Workbook =
new HSSFWorkbook(FileUtils.openInputStream(file));
/*HSSFSheet sheet = Workbook.getSheet("sheet0");*/
HSSFSheet sheet = Workbook.getSheetAt(0);
int lastRowNum = sheet.getLastRowNum();
for (int j = 0; j < lastRowNum; j++) {
HSSFRow row = sheet.getRow(j);
short lastCellNum = row.getLastCellNum();
for (int k = 0; k < lastCellNum; k++) {
HSSFCell cell = row.getCell(k);
String stringCellValue = cell.getStringCellValue();
System.out.print(stringCellValue);
}
System.out.println();
}


} catch (Exception e) {

e.printStackTrace();
}
}
}

Excel

2007匯出只要把HSSF批量替換為XSSF就行 重新匯入包  (匯入也可以但是得注意Excel的格式尤其是數字文字的區別)

匯出的建議HSSF 考慮客戶的相容性 匯入的時候需要判斷2003還是2007

需要匯入

poi-3.9-20121203.jar

commons-io-2.4.jar

poi-ooxml-3.9-20121203.jar

poi-ooxml-schemas-3.9-20121203.jar

dom4j-1.6.1.jar  (也需要dom4j)

如果未匯入xmlbeans-2.3.0.jar

報一下錯誤

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlObject
at com.ithema.excel.poiexp.main(poiexp.java:16)
Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlObject
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more

public class poiexp {
public static void main(String[] args) {
String[] title={"id","name","sex"};
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet();
XSSFRow row = sheet.createRow(0);
XSSFCell cell=null;
for (int i = 0; i < title.length; i++) {
cell=row.createCell(i);
cell.setCellValue(title[i]);
}
for (int i = 1; i <= 10; i++) {
XSSFRow nextrow =sheet.createRow(i);
XSSFCell Cell1 = nextrow.createCell(0);
Cell1.setCellValue("id"+i);
Cell1 = nextrow.createCell(1);
Cell1.setCellValue("name"+i);
Cell1 = nextrow.createCell(2);
Cell1.setCellValue("nv"+i);
}
File file =new File("d:/22.xlsx");
try {
file.createNewFile();
FileOutputStream stream=FileUtils.openOutputStream(file);
workbook.write(stream);
} catch (Exception e) {

e.printStackTrace();
}

}
}