#### 4.2 html轉Excel更神奇的導出
這個是一個MM提出的需求,需求原因是,她要導出一個比較復雜的Excel,無論用模板還是注解都比較難實現,所以她想到了這個方案,然后就實現了如下的方法,我的使用方法如下 自己搞個html,然后用模板引擎,beetl,freemark等生成html,然后調用autopoi提供的方法轉換成Excel,因為html的標簽以及規則大家比Excel要熟悉的多,更容易編寫復雜的table,然后autopoi轉換成Excel再導出,麻煩了點,但是可以處理一些特定的情況,也同樣生成兩個版本的Excel都支持 使用demo
~~~
@Test
public void htmlToExcelByStr() throws Exception {
StringBuilder html = new StringBuilder();
Scanner s = new Scanner(getClass().getResourceAsStream("/html/sample.html"), "utf-8");
while (s.hasNext()) {
html.append(s.nextLine());
}
s.close();
Workbook workbook = ExcelXorHtmlUtil.htmlToExcel(html.toString(), ExcelType.XSSF);
File savefile = new File("D:\\home\\lemur");
if (!savefile.exists()) {
savefile.mkdirs();
}
FileOutputStream fos = new FileOutputStream("D:\\home\\lemur\\htmlToExcelByStr.xlsx");
workbook.write(fos);
fos.close();
workbook = ExcelXorHtmlUtil.htmlToExcel(html.toString(), ExcelType.HSSF);
fos = new FileOutputStream("D:\\home\\lemur\\htmlToExcelByStr.xls");
workbook.write(fos);
fos.close();
}
@Test
public void htmlToExcelByIs() throws Exception {
Workbook workbook = ExcelXorHtmlUtil.htmlToExcel(getClass().getResourceAsStream("/html/sample.html"), ExcelType.XSSF);
File savefile = new File("D:\\home\\lemur");
if (!savefile.exists()) {
savefile.mkdirs();
}
FileOutputStream fos = new FileOutputStream("D:\\home\\lemur\\htmlToExcelByIs.xlsx");
workbook.write(fos);
fos.close();
workbook = ExcelXorHtmlUtil.htmlToExcel(getClass().getResourceAsStream("/html/sample.html"), ExcelType.HSSF);
fos = new FileOutputStream("D:\\home\\lemur\\htmlToExcelByIs.xls");
workbook.write(fos);
fos.close();
}
~~~
提供了流或者字符串的入參,內部都多了緩存,多次生成不會重復解析
- 1.前傳
- 1.1前言
- 1.2 Autopoi 介紹
- 1.3 使用
- 1.4 測試項目
- 1.5 快速文檔
- 1.6 示例
- 1.6.1 單表數據導出多表頭示例
- 單表數據多表頭導入注意bak
- 1.6.2 單表數據導出多sheet示例
- 1.6.3 excel根據模板導出
- 1.6.4 一對多導出needMerge示例
- 1.6.5 大數據導出示例
- 1.7 導出自定義選擇列導出
- 2. Excel 注解版
- 2.0 @excel注解的使用
- 2.1 Excel導入導出
- 2.2 注解
- 2.3 注解導出,導入
- 2.3.1 對象定義
- 2.3.2 集合定義
- 2.3.3 圖片的導出
- 2.3.4 Excel導入介紹
- 2.3.5 Excel導入小功能
- 2.3.6 圖片的導入
- 2.3.7 Excel多Sheet導出
- 2.4 注解變種-更自由的導出
- 2.5 Map導入,自由發揮
- 2.6 Excel的樣式自定義
- 2.7 如何自定義數據處理
- 2.8 Excel導入校驗(暫不支持)
- 2.9 Excel 大批量讀取
- 2.10 Excel大數據導出
- 2.11 groupname和ExcelEntity的name屬性
- 3. Excel 模板版
- 3.1 模板 指令介紹
- 3.2 基本導出
- 3.3 模板當中使用注解
- 3.4 圖片導出
- 3.5 橫向遍歷
- 4. Excel<->Html
- 4.1 Excel 的Html預覽
- 4.2 html轉Excel更神奇的導出
- 5. Word
- 5.1 word模板導出
- 6. PDF
- 7. Spring MVC
- 7.1 View 介紹
- 7.2 大數據導出View的用法
- 7.3 注解導出View用法
- 7.4 注解變種Map類型的導出View
- 7.5Excel模板導出View
- 7.6 PoiBaseView.render view的補救
- 8.問題歸檔
- 9.大數據量處理
- 10.autopoi升級4.0版本修改記錄