Java读写excel2007操作指南
1. Poi读写excel2007所需要用到的外部Jar包
下载poi3.6
加入poi-3.6.jar xmlbeans-2.3.0.jar poi-ooxml-3.6.jar poi-example.jar
Poi-ooxml-schemas.jar log4j.jar dom4j.jar commons-logging.jar
这些都是程序依赖的包,都要add to build path
2. 读写的代码
读文件.xlsx的代码:
XSSFWorkbook xwb = null;
xwb = new XSSFWorkbook(fromFilePath);
XSSFSheet sheet = xwb.getSheetAt(0);
XSSFRow row;
String cellString;
for (int i = sheet.getFirstRowNum(); i < sheet.getPhysicalNumberOfRows(); i++) {
//取得第i行
row = sheet.getRow(i);
for (int j = row.getFirstCellNum(); j < row.getPhysicalNumberOfCells(); j++) {
//第i行第j列
//cellString中存的是读取出来的那个单元格中的内容
cellString = row.getCell(j).toString();
System.out.println(cellString);
String[] authors = cellString.split(SEMICOLON);
putAuthors2List(authors);
}
}
写xlsx的代码:
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet2 = wb.createSheet("结果");
XSSFRow row2 = sheet2.createRow(0);
//第一行写上作者
String author;
int i = 1;
XSSFRichTextString xssfValue ;
List<String> authorList = new LinkedList<String>();
for(Entry<String, String> entry:authorMap.entrySet()) {
author = entry.getKey();
XSSFCell cell = row2.createCell(i);
xssfValue = new XSSFRichTextString(author);
cell.setCellValue(xssfValue);
authorList.add(author);
i++;
}
//此程序只是一个示例,因而只写了一行
FileOutputStream outputStream = new
//toFilePath为待写的文件的路径
FileOutputStream(toFilePath);
wb.write(outputStream);
outputStream.close();
3. 特别要注意XSSFRichTextString(针对07版的)和HSSFRichTextString(针对03版的)的区别。
XSSFRowàHSSFRow
XSSCellàHSSCell
…
03和07的写法是对应的。