SmartExcel.java 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package net.lab1024.smartadmin.util.excel;
  2. import java.io.FileInputStream;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.util.ArrayList;
  6. import java.util.Collection;
  7. import java.util.List;
  8. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  9. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  10. /**
  11. * zhuoda
  12. */
  13. public class SmartExcel {
  14. List<SmartSheet> sheetList = new ArrayList<SmartSheet>();;
  15. public SmartExcel(String fileName) {
  16. org.apache.poi.ss.usermodel.Workbook workbook = null;
  17. try {
  18. workbook = fileName.endsWith(".xls") ? new HSSFWorkbook(new FileInputStream(fileName)) : new XSSFWorkbook(new FileInputStream(fileName));
  19. int numberOfSheets = workbook.getNumberOfSheets();
  20. for (int index = 0; index < numberOfSheets; index++) {
  21. addSheet(new SmartSheet(workbook.getSheetAt(index)));
  22. }
  23. } catch (Throwable t) {
  24. throw new RuntimeException(t);
  25. } finally {
  26. if (workbook != null) {
  27. try {
  28. workbook.close();
  29. } catch (IOException e) {
  30. }
  31. workbook = null;
  32. }
  33. }
  34. }
  35. public SmartExcel(InputStream ins, SmartExcelFileType fileType) {
  36. org.apache.poi.ss.usermodel.Workbook workbook = null;
  37. try {
  38. workbook = fileType == SmartExcelFileType.XLS ? new HSSFWorkbook(ins) : new XSSFWorkbook(ins);
  39. int numberOfSheets = workbook.getNumberOfSheets();
  40. for (int index = 0; index < numberOfSheets; index++) {
  41. addSheet(new SmartSheet(workbook.getSheetAt(index)));
  42. }
  43. } catch (Throwable t) {
  44. throw new RuntimeException(t);
  45. } finally {
  46. if (workbook != null) {
  47. try {
  48. workbook.close();
  49. } catch (IOException e) {
  50. }
  51. workbook = null;
  52. }
  53. }
  54. }
  55. final protected void addSheet(SmartSheet sheet) {
  56. this.sheetList.add(sheet);
  57. }
  58. final protected void addSheetList(Collection<SmartSheet> sheets) {
  59. this.sheetList.addAll(sheets);
  60. }
  61. final public List<SmartSheet> getSheetList() {
  62. return sheetList;
  63. }
  64. final public SmartSheet getSheet(String sheetName) {
  65. for (SmartSheet sheet : sheetList) {
  66. if (sheet.getName().equals(sheetName)) {
  67. return sheet;
  68. }
  69. }
  70. return null;
  71. }
  72. }