diff --git a/README.md b/README.md index fedbdb9..836b473 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,16 @@ EasyPoi的几个入口工具类 - 2.0.6-SNAPSHOT - 增加map的导出 - 增加index 列 - + + +--------------------------- +EasyPoi 文档 +--------------------------- + +[EasyPoi-在财务报表中的应用](http://git.oschina.net/jueyue/easypoi/wikis/EasyPoi-%E5%9C%A8%E8%B4%A2%E5%8A%A1%E6%8A%A5%E8%A1%A8%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8) + + +[EasyPoi-如何筛选导出属性](http://git.oschina.net/jueyue/easypoi/wikis/EasyPoi-%E5%A6%82%E4%BD%95%E7%AD%9B%E9%80%89%E5%AF%BC%E5%87%BA%E5%B1%9E%E6%80%A7) --------------------------- EasyPoi导出实例 --------------------------- diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/entity/TestEntity.java b/easypoi-test/src/main/java/org/jeecgframework/poi/entity/TestEntity.java new file mode 100644 index 0000000..fe95160 --- /dev/null +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/entity/TestEntity.java @@ -0,0 +1,28 @@ +package org.jeecgframework.poi.entity; + +import org.jeecgframework.poi.excel.annotation.Excel; + +public class TestEntity { + + @Excel(name = "蓝牙POS机") + private String lanya; + @Excel(name = "蓝牙点付宝") + private String pos; + + public String getLanya() { + return lanya; + } + + public void setLanya(String lanya) { + this.lanya = lanya; + } + + public String getPos() { + return pos; + } + + public void setPos(String pos) { + this.pos = pos; + } + +} diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/entity/temp/BudgetAccountsEntity.java b/easypoi-test/src/main/java/org/jeecgframework/poi/entity/temp/BudgetAccountsEntity.java new file mode 100644 index 0000000..53f9b3c --- /dev/null +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/entity/temp/BudgetAccountsEntity.java @@ -0,0 +1,34 @@ +package org.jeecgframework.poi.entity.temp; + +import org.jeecgframework.poi.excel.annotation.Excel; + +/** + * 预算 + * @author JueYue + * @date 2014年12月27日 下午9:08:03 + */ +public class BudgetAccountsEntity { + + @Excel(name = "编码") + private String code; + + @Excel(name = "名称") + private String name; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/entity/temp/PayeeEntity.java b/easypoi-test/src/main/java/org/jeecgframework/poi/entity/temp/PayeeEntity.java new file mode 100644 index 0000000..caa5012 --- /dev/null +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/entity/temp/PayeeEntity.java @@ -0,0 +1,40 @@ +package org.jeecgframework.poi.entity.temp; + +import org.jeecgframework.poi.excel.annotation.Excel; + +public class PayeeEntity { + + @Excel(name = "全称") + private String name; + + @Excel(name = "银行账号") + private String bankAccount; + + @Excel(name = "开户银行") + private String bankName; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getBankAccount() { + return bankAccount; + } + + public void setBankAccount(String bankAccount) { + this.bankAccount = bankAccount; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + +} diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/entity/temp/TemplateExcelExportEntity.java b/easypoi-test/src/main/java/org/jeecgframework/poi/entity/temp/TemplateExcelExportEntity.java new file mode 100644 index 0000000..7eae0f1 --- /dev/null +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/entity/temp/TemplateExcelExportEntity.java @@ -0,0 +1,99 @@ +package org.jeecgframework.poi.entity.temp; + +import java.io.Serializable; +import java.util.List; + +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecgframework.poi.excel.annotation.ExcelCollection; +import org.jeecgframework.poi.excel.annotation.ExcelEntity; + +/** + * 模板导出 测试类 + * @author JueYue + * @date 2014年12月26日 上午9:39:13 + */ +public class TemplateExcelExportEntity implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; + + @Excel(name = "序号") + private String index; + + @Excel(name = "资金性质") + private String accountType; + + @ExcelCollection(name = "预算科目") + private List budgetAccounts; + + @Excel(name = "项目名称") + private String projectName; + + @ExcelEntity(name = "收款人") + private PayeeEntity payee; + + @Excel(name = "申请金额") + private String amountApplied; + + @Excel(name = "核定金额") + private String approvedAmount; + + public String getIndex() { + return index; + } + + public void setIndex(String index) { + this.index = index; + } + + public String getAccountType() { + return accountType; + } + + public void setAccountType(String accountType) { + this.accountType = accountType; + } + + public List getBudgetAccounts() { + return budgetAccounts; + } + + public void setBudgetAccounts(List budgetAccounts) { + this.budgetAccounts = budgetAccounts; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public PayeeEntity getPayee() { + return payee; + } + + public void setPayee(PayeeEntity payee) { + this.payee = payee; + } + + public String getAmountApplied() { + return amountApplied; + } + + public void setAmountApplied(String amountApplied) { + this.amountApplied = amountApplied; + } + + public String getApprovedAmount() { + return approvedAmount; + } + + public void setApprovedAmount(String approvedAmount) { + this.approvedAmount = approvedAmount; + } + +} diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/excel/ExcelImportUtilTest.java b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/ExcelImportUtilTest.java index 0c5f0ba..16cc101 100644 --- a/easypoi-test/src/main/java/org/jeecgframework/poi/excel/ExcelImportUtilTest.java +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/ExcelImportUtilTest.java @@ -4,13 +4,15 @@ import java.io.File; import java.util.Date; import java.util.List; +import org.apache.commons.lang.StringUtils; import org.jeecgframework.poi.entity.CourseEntity; +import org.jeecgframework.poi.entity.TestEntity; import org.jeecgframework.poi.excel.entity.ImportParams; import org.junit.Test; public class ExcelImportUtilTest { - @Test + //@Test public void test() { ImportParams params = new ImportParams(); params.setTitleRows(2); @@ -18,9 +20,31 @@ public class ExcelImportUtilTest { //params.setSheetNum(9); params.setNeedSave(true); long start = new Date().getTime(); - List list = ExcelImportUtil.importExcel(new File("d:/tt.xls"), + List list = ExcelImportUtil.importExcel(new File("d:/tt.xlsx"), CourseEntity.class, params); System.out.println(list.size() + "-----" + (new Date().getTime() - start)); } + @Test + public void test2() { + ImportParams params = new ImportParams(); + params.setTitleRows(1); + params.setHeadRows(1); + params.setSheetNum(8); + //params.setSheetNum(9); + long start = new Date().getTime(); + List list = ExcelImportUtil.importExcel(new File("d:/tt.xlsx"), + TestEntity.class, params); + String str = ""; + for (int i = 0; i < list.size(); i++) { + if (StringUtils.isNotEmpty(list.get(i).getLanya())) { + str += "','" + Double.valueOf(list.get(i).getLanya()).intValue(); + } + if (StringUtils.isNotEmpty(list.get(i).getPos())) { + str += "','" + Double.valueOf(list.get(i).getPos()).intValue(); + } + } + System.out.println(str); + System.out.println(str.split(",").length); + } } diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/excel/doc/专项支出用款申请书.xls b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/doc/专项支出用款申请书.xls new file mode 100644 index 0000000..7528860 Binary files /dev/null and b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/doc/专项支出用款申请书.xls differ diff --git a/easypoi-test/src/main/java/org/jeecgframework/poi/excel/template/TemplateExcelExportTest.java b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/template/TemplateExcelExportTest.java new file mode 100644 index 0000000..13a436a --- /dev/null +++ b/easypoi-test/src/main/java/org/jeecgframework/poi/excel/template/TemplateExcelExportTest.java @@ -0,0 +1,80 @@ +package org.jeecgframework.poi.excel.template; + +import static org.junit.Assert.*; + +import java.io.File; +import java.io.FileOutputStream; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.poi.ss.usermodel.Workbook; +import org.jeecgframework.poi.entity.statistics.StatisticEntity; +import org.jeecgframework.poi.entity.temp.BudgetAccountsEntity; +import org.jeecgframework.poi.entity.temp.PayeeEntity; +import org.jeecgframework.poi.entity.temp.TemplateExcelExportEntity; +import org.jeecgframework.poi.excel.ExcelExportUtil; +import org.jeecgframework.poi.excel.entity.TemplateExportParams; +import org.junit.Test; + +import com.google.common.collect.Lists; + +public class TemplateExcelExportTest { + + @Test + public void test() throws Exception { + TemplateExportParams params = new TemplateExportParams( + "org/jeecgframework/poi/excel/doc/专项支出用款申请书.xls"); + params.setHeadingStartRow(3); + params.setHeadingRows(2); + Map map = new HashMap(); + map.put("date", "2014-12-25"); + map.put("money", 2000000.00); + map.put("upperMoney", "贰佰万"); + map.put("company", "执笔潜行科技有限公司"); + map.put("bureau", "财政局"); + map.put("person", "JueYue"); + map.put("phone", "1879740****"); + + List list = new ArrayList(); + + for (int i = 0; i < 1; i++) { + TemplateExcelExportEntity entity = new TemplateExcelExportEntity(); + entity.setIndex(i + 1 + ""); + entity.setAccountType("开源项目"); + entity.setProjectName("EasyPoi " + i + "期"); + entity.setAmountApplied(i * 10000 + ""); + entity.setApprovedAmount((i + 1) * 10000 - 100 + ""); + List budgetAccounts = Lists.newArrayList(); + for (int j = 0; j < 1; j++) { + BudgetAccountsEntity accountsEntity = new BudgetAccountsEntity(); + accountsEntity.setCode("A001"); + accountsEntity.setName("设计"); + budgetAccounts.add(accountsEntity); + accountsEntity = new BudgetAccountsEntity(); + accountsEntity.setCode("A002"); + accountsEntity.setName("开发"); + budgetAccounts.add(accountsEntity); + } + entity.setBudgetAccounts(budgetAccounts); + PayeeEntity payeeEntity = new PayeeEntity(); + payeeEntity.setBankAccount("6222 0000 1234 1234"); + payeeEntity.setBankName("中国银行"); + payeeEntity.setName("小明"); + entity.setPayee(payeeEntity); + list.add(entity); + } + + Workbook workbook = ExcelExportUtil.exportExcel(params, TemplateExcelExportEntity.class, + list, map); + File savefile = new File("d:/"); + if (!savefile.exists()) { + savefile.mkdirs(); + } + FileOutputStream fos = new FileOutputStream("d:/tt.xls"); + workbook.write(fos); + fos.close(); + } +}