萬能Excel導入導出工具:J-Excel
J-Excel 是萬能的 Excel 導入導出工具:
-
支持從List<Map>中導出
-
支持從List<POJO>中導入導出
-
支持從List<POJO里面還有List<POJO>>中導入導出
-
支持導出類似課程表結構類型縱表
-
支持國際化
-
不寫一個配置文件!
示例請參照:ublic class TestExcel { static { SimpleConfigurator.addConfigurator(new DbConfig("jdbc:mysql://localhost/digitalcampus?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8&autoReconnect=true", DbConfig.DEFAULT_CONFIG_NAME)); } /** * 從List<Map>中導出 * @param workbook * @throws Exception */ public static void testSimpleMapExport(Workbook workbook) throws Exception { Hyberbin hyberbin = new Hyberbin(); List<Map> list = hyberbin.getMapList("select * from dc_xxkc"); Sheet sheet = workbook.createSheet("testSimpleMapExport"); List<String> cols = new ArrayList<String>(); List<FieldColumn> fieldColumns = hyberbin.getFieldColumns(); for (FieldColumn column : fieldColumns) { cols.add(column.getColumn()); } SimpleExportService service = new SimpleExportService(sheet, list, (String[]) cols.toArray(new String[]{}), "學校課程"); service.setDic("KCLX", "KCLX").addDic("KCLX", "1", "國家課程").addDic("KCLX", "2", "學校課程");//設置數據字典 service.doExport(); } /** * 從List<Vo>中導出 * @param workbook * @throws Exception */ public static void testSimpleVoExport(Workbook workbook) throws Exception { Hyberbin<SchoolCourse> hyberbin = new Hyberbin(new SchoolCourse()); List<SchoolCourse> list = hyberbin.showAll(); Sheet sheet = workbook.createSheet("testSimpleVoExport"); //ExportExcelService service = new ExportExcelService(list, sheet, "學校課程"); ExportExcelService service = new ExportExcelService(list, sheet, new String[]{"id", "courseName", "type"}, "學校課程"); service.addDic("KCLX", "1", "國家課程").addDic("KCLX", "2", "學校課程");//設置數據字典 service.doExport(); } /** * 從List<Vo>,vo中還有簡單循環節中導出 * @param workbook * @throws Exception */ public static void testVoHasListExport(Workbook workbook) throws Exception { Hyberbin<SchoolCourse> hyberbin = new Hyberbin(new SchoolCourse()); List<SchoolCourse> list = hyberbin.showAll(); List<String> strings = new ArrayList<String>(); for (int i = 0; i < 10; i++) { strings.add("我是第" + i + "個循環字段"); } for (SchoolCourse course : list) { course.setBaseArray(strings); } Sheet sheet = workbook.createSheet("testVoHasListExport"); ExportExcelService service = new ExportExcelService(list, sheet, new String[]{"id", "courseName", "type", "baseArray"}, "學校課程"); service.addDic("KCLX", "1", "國家課程").addDic("KCLX", "2", "學校課程");//設置數據字典 service.setGroupConfig("baseArray", new GroupConfig(10) { @Override public String getLangName(int innerIndex, int index) { return "我是第" + index + "個循環字段"; } }); service.doExport(); service.exportTemplate();//生成下拉框 } /** * 從List<Vo>,vo中還有復雜循環節中導出 * @param workbook * @throws Exception */ public static void testVoHasListVoExport(Workbook workbook) throws Exception { Hyberbin<SchoolCourse> hyberbin = new Hyberbin(new SchoolCourse()); List<SchoolCourse> list = hyberbin.showAll(); for (SchoolCourse course : list) { List<InnerVo> innerVos = new ArrayList<InnerVo>(); for (int i = 0; i < 10; i++) { innerVos.add(new InnerVo("key1", "value1")); } course.setInnerVoArray(innerVos); } Sheet sheet = workbook.createSheet("testVoHasListVoExport"); ExportExcelService service = new ExportExcelService(list, sheet, new String[]{"id", "courseName", "type", "innerVoArray"}, "學校課程"); service.addDic("KCLX", "1", "國家課程").addDic("KCLX", "2", "學校課程");//設置數據字典 for (int i = 0; i < 10; i++) { service.addTook("hiddenvalue", "key", i, "something"); } service.setGroupConfig("innerVoArray", new GroupConfig(2, 10) { @Override public String getLangName(int innerIndex, int index) { return "我是第" + index + "個循環字段,第" + innerIndex + "個屬性"; } }); service.doExport(); } /** * 導出一個縱表(課程表之類的) * @param workbook * @throws Exception */ public static void testTableExport(Workbook workbook) throws Exception { Sheet sheet = workbook.createSheet("testTableExport"); TableBean tableBean = new TableBean(3, 3); Collection<CellBean> cellBeans = new HashSet<CellBean>(); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { CellBean cellBean = new CellBean(i * 3 + j + "", i, j); cellBeans.add(cellBean); } } tableBean.setCellBeans(cellBeans); ExportTableService tableService = new ExportTableService(sheet, tableBean); tableService.doExport(); } /** * 從List<Vo>中入 * @param workbook * @throws Exception */ public static void testSimpleVoImport(Workbook workbook) throws Exception { Sheet sheet = workbook.getSheet("testSimpleVoExport"); ImportExcelService service = new ImportExcelService(SchoolCourse.class, sheet); service.addDic("KCLX", "1", "國家課程").addDic("KCLX", "2", "學校課程");//設置數據字典 List list = service.doImport(); System.out.println("成功導入:" + list.size() + "條數據"); } /** * 從List<Vo>,vo中還有簡單循環節中導入 * @param workbook * @throws Exception */ public static void testVoHasListImport(Workbook workbook) throws Exception { Sheet sheet = workbook.getSheet("testVoHasListExport"); ImportExcelService service = new ImportExcelService(SchoolCourse.class, sheet); service.addDic("KCLX", "1", "國家課程").addDic("KCLX", "2", "學校課程");//設置數據字典 List list = service.doImport(); System.out.println("成功導入:" + list.size() + "條數據"); } /** * 從List<Vo>,vo中還有復雜循環節中導入 * @param workbook * @throws Exception */ public static void testVoHasListVoImport(Workbook workbook) throws Exception { Sheet sheet = workbook.getSheet("testVoHasListVoExport"); ImportExcelService service = new ImportExcelService(SchoolCourse.class, sheet); service.addDic("KCLX", "1", "國家課程").addDic("KCLX", "2", "學校課程");//設置數據字典 List list = service.doImport(); System.out.println("成功導入:" + list.size() + "條數據"); } public static void main(String[] args) throws Exception { Workbook workbook = new HSSFWorkbook(); testSimpleMapExport(workbook); testSimpleVoExport(workbook); testVoHasListExport(workbook); testVoHasListVoExport(workbook); testTableExport(workbook); testSimpleVoImport(workbook); testVoHasListImport(workbook); testVoHasListVoImport(workbook); workbook.write(new FileOutputStream("D:\\excel.xls")); } }
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!