public static void main(String args[]) throws FileNotFoundException,
IOException {
String file = "d:\\user.xlsx";
List<User> list = importExcel(file);
for (User u : list) {
System.out.println("姓名:" + u.getName() + "密码:" + u.getPassword());
}
}
public static List<User> importExcel(String file)
throws FileNotFoundException, IOException {
String s=file.substring(file.indexOf(".")+1);
List<User> userList = new ArrayList<User>();;// 批处理导入的数据容器
System.out.println(s);
//支持excel2007
if(s.equals("xlsx")){
System.out.println("***********");
XSSFWorkbook wb= new XSSFWorkbook(file);
//只能得到第一个sheet
XSSFSheet sheet = wb.getSheetAt(0);
int firstRowNum = sheet.getFirstRowNum();
int lastRowNum = sheet.getPhysicalNumberOfRows();
System.out.println(firstRowNum+","+lastRowNum);
for (int r = firstRowNum; r <= lastRowNum; r++) {
// 循环得到每一行
XSSFRow row = sheet.getRow(r);
if (row == null)
continue;
String cell=row.getCell(r).toString();//获取每一行的内容
User user = new User();
user.setName(cell);
user.setPassword("1111");
userList.add(user);
}
}else if (s.equals("xls")){
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(file));
HSSFWorkbook workbook = new HSSFWorkbook(fs);
int sheetNum = workbook.getNumberOfSheets();// 得到工作簿的个数
for (int i = 0; i < sheetNum; i++) {
// 循环得到每个工作簿
HSSFSheet sheet = workbook.getSheetAt(i);
int firstRowNum = sheet.getFirstRowNum();
int lastRowNum = sheet.getLastRowNum();
for (int r = firstRowNum; r <= lastRowNum; r++) {
// 循环得到每一行
HSSFRow row = sheet.getRow(r);
if (row == null)
continue;
int firstCellNum = row.getFirstCellNum();
int lastCellNum = row.getLastCellNum();
User user = new User();
for (int c = firstCellNum; c <= lastCellNum; c++) {
HSSFCell cell = row.getCell((short) c);// 得到c行的单元格对象
if (cell == null)
continue;
if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
user.setName(cell.getStringCellValue());
}
}
user.setPassword("1111");
userList.add(user);
}
}
}
return userList;
}
异常信息:
xlsx
***********
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException
at com.iflysse.poi.testExcel.ReadExcelTest.importExcel(ReadExcelTest.java:39)
at com.iflysse.poi.testExcel.ReadExcelTest.main(ReadExcelTest.java:24)
Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
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)
... 2 more
分享到:
相关推荐
使用POI读取Excel文件时,可以创建HSSFWorkbook或XSSFWorkbook对象,然后通过getSheetAt方法获取工作表。写入时,可以通过createSheet方法创建新工作表,或者通过setSheetOrder方法调整工作表顺序,最后使用...
以上就是使用Java和Apache POI读取Excel文件的基本步骤。对于更复杂的需求,如处理公式、样式、图表、数据验证等,Apache POI提供了丰富的API供开发者使用。在实际项目中,可能还需要考虑性能优化,比如使用SAX解析...
poi-3.8-20120326.jar,poi-ooxml-schemas-3.8-20120326.jar,poi-ooxml-3.8-20120326.jar,poi-scratchpad-3.8-20120326.jar,dom4j-1.6.1.jar,xmlbeans-2.3.0.jar,xmlbeans-2.4.0.jar
- 读取时要注意空指针和文件不存在异常。 - 避免文件路径注入和非法字符,确保文件安全。 通过以上步骤,你可以利用Apache POI在Java Web应用中实现Excel的导入导出、文件下载以及打印功能。在实际开发中,根据具体...
4. 需要处理可能出现的异常,如文件格式错误、空指针异常等。 以上就是关于"Struts2 poi 导入xls xlsx 绝对兼容"的相关知识点,通过Struts2和Apache POI的结合,开发者可以轻松地在Java Web应用中处理Excel文件,...
7. **错误处理与调试**:在实际使用中,需要注意文件格式兼容性问题、空指针异常、数据溢出等问题。Apache POI 提供了详细的错误日志和异常处理机制,帮助开发者定位并解决问题。 8. **最佳实践**:在处理大量数据...
为了解决这个问题,Java开发领域出现了许多库,其中EasyPoi是一款广泛应用的工具,它能够方便地生成Excel报表,支持xls和xlsx两种格式。本文将详细介绍如何使用EasyPoi模板来导出Excel报表,并深入探讨其背后的原理...
- 读取Excel文件时,要处理可能存在的空指针异常和文件不存在异常。 - 及时关闭流以释放资源,避免文件被锁定无法操作。 以上就是关于使用Java和Apache POI操作Excel的基本知识,希望对你入门有所帮助。在实际...
它允许应用程序创建、修改和读取Excel(XLSX)文件。然而,由于Android内存管理的限制,处理大型Excel文件时需特别注意内存泄漏和性能问题。 其次,对于Word和PowerPoint文档,开发者可能会采用Apache POI的HWPF和...
6. **Apache POI库**:读取Excel工作表通常会用到Apache POI库,这是一个流行的开源API,用于处理Microsoft Office格式的文件,包括Excel。它提供了与Excel数据交互的接口和类,如`Sheet`、`Row`和`Cell`。 7. **...
- **错误处理**:处理文件时可能会遇到格式错误、空指针异常或其他运行时异常,因此必须有适当的错误处理机制。 - **性能优化**:对于大量数据,考虑使用批处理操作来提高性能。 - **单元格类型**:Excel单元格可以...
这部分可能需要用到Java的数据分析库,如Apache POI读取Excel文件,或者使用Java的CSV处理库。 5. **用户界面**:虽然题目未明确指出,但一个完整的系统通常需要友好的用户界面。这可能涉及到Java Swing或JavaFX,...
实例40 空指针异常(NullPointerException) 58 实例41 数字格式转换异常(NumberFornatException) 59 实例42 字符串索引越界异常(StringIndexOutBounds) 60 实例43 操作错误...
实例40 空指针异常(NullPointerException) 58 实例41 数字格式转换异常(NumberFornatException) 59 实例42 字符串索引越界异常(StringIndexOutBounds) 60 实例43 操作错误(UnsupportedOperationException) ...
实例40 空指针异常(NullPointerException) 58 实例41 数字格式转换异常(NumberFornatException) 59 实例42 字符串索引越界异常(StringIndexOutBounds) 60 实例43 操作错误...
实例40 空指针异常(NullPointerException) 58 实例41 数字格式转换异常(NumberFornatException) 59 实例42 字符串索引越界异常(StringIndexOutBounds) 60 实例43 操作错误(UnsupportedOperationException) ...
实例40 空指针异常(NullPointerException) 58 实例41 数字格式转换异常(NumberFornatException) 59 实例42 字符串索引越界异常(StringIndexOutBounds) 60 实例43 操作错误(UnsupportedOperationException...