B/S模式已成为应用开发的主流,而在企业应用系统中,经常有客户这样子要求:我要把我的报表数据导入到系统里面,不想在浏览器里面输入。或者是:我们已经习惯用Excel打印。这样在我们实际的开发中,很多时候需要对Office文档进行操作(如读取Excel文档数据导入数据库、数据库数据导出Excel文件、读取Word文档转换Html、读取Excel文档转换Html【类似QQ邮箱附件的预览功能】等)
什么是Apache POI
Apache POI项目是创造和保持java API操纵各种文件格式,基于Office Open XML标准(OOXML)和微软的OLE复合文档格式(OLE2)。总之,Apache POI可以使用java读写Excel文件。此外,您可以读取和写入MS Word和PowerPoint文件。
POI API结构说明
包名称说明
HSSF提供读写Microsoft Excel XLS格式档案的功能。
XSSF提供读写Microsoft Excel OOXML XLSX格式档案的功能。
HWPF提供读写Microsoft Word DOC格式档案的功能。
HSLF提供读写Microsoft PowerPoint格式档案的功能。
HDGF提供读Microsoft Visio格式档案的功能。
HPBF提供读Microsoft Publisher格式档案的功能。
HSMF提供读Microsoft Outlook格式档案的功能。
下面我们使用POI实现对excel文件的读取
public static void main(String[] args) throws Exception {
List'C:/Users/Administrator/Desktop/新建文件夹/a.xls');
for (Map
Set
for (Entry
System.out.print(entry.getValue() + '\t');
}
System.out.println();
}
}
/**
* 根据excel文件路径返回list list对应一张表的数据,list里面是多个map集合,一个map对应一行数据
*
* @param fileName
* @return
* @throws Exception
*/
public static List
throws Exception {
Listnew ArrayList();
FileInputStream fis = newFileInputStream(fileName);
Workbook workbook = null;
if (fileName.toLowerCase().endsWith('xlsx')) {
workbook = new XSSFWorkbook(fis);
} else if (fileName.toLowerCase().endsWith('xls')) {
workbook = new HSSFWorkbook(fis);
}
Sheet sheet = workbook.getSheetAt(0);
Iterator rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator cellIterator = row.cellIterator();
Mapnew HashMap
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
String v = cell.getStringCellValue();
maprow.put(cell.getColumnIndex() + '', v);
}
sheetList.add(maprow);
}
return sheetList;
}