Java Excel 讀寫庫 - JxlExcel

jopen 8年前發布 | 52K 次閱讀 Office文檔處理

JxlExcel 是基于jxl封裝的java excel讀寫庫,特性如下:

  • 可以像讀寫文件一樣方便的讀取數據和寫入數據

  • 數據支持數組、map、bean三種方式

  • 支持xml配置excel模板

如何使用?

模板定義

在類路徑下新建一個jxl-excel.xml的模板配置文件,輸入如下的配置文件內容,即可定義一個excel模板。

<?xml version="1.0" encoding="UTF-8" ?>
<templates>
<template name="testRead">
    <titleRow>
        <titleCol span="6">span標題</titleCol>
    </titleRow>
    <titleRow>
        <titleCol>編制單位(蓋章):</titleCol>
        <titleCol></titleCol>
        <titleCol span="3">編制日期:</titleCol>
        <titleCol>單位:元</titleCol>
    </titleRow>
    <titleRow>
        <titleCol>地區</titleCol>
        <titleCol>姓名</titleCol>
        <titleCol>身份證</titleCol>
        <titleCol>賬號</titleCol>
        <titleCol>金額</titleCol>
        <titleCol>備注</titleCol>
    </titleRow>
    <dataRow>
        <dataCol>area</dataCol>
        <dataCol>name</dataCol>
        <dataCol>idCard</dataCol>
        <dataCol>bankAccount</dataCol>
        <dataCol>amount</dataCol>
        <dataCol>remark</dataCol>
    </dataRow>
</template>
</templates>
  • 模板(template)

    template元素用于定義一個模板,包含一個屬性name,用于唯一標識該模板

  • 標題行(tittleRow)

    使用titleRow可以定義多行標題,每行標題又包含多個標題列(titleCol),標題列可以像html table的td一樣定義span屬性,表示該列占用幾列空間

  • 數據行(dataRow)

    數據行用于定義Java bean或者Map中的屬性在模板中的顯示或讀寫順序,數據行中的dataCol不支持span

讀數據

InputStream is = JxlExcelReaderTest.class
            .getResourceAsStream("/testRead.xls");
reader.setExcelTemplate("testRead");
List<String[]> datas = reader.readArrays();
//List<Account> beans = reader.readBeans(Account.class);
//List<Map<String, Object>> maps = reader.readMaps();

寫數據

File tmp = new File("testWriteData.xls");
if (tmp.exists()) {
tmp.delete();
}
tmp.createNewFile();
JxlExcelWriter jxlExcelWriter = new JxlExcelWriter(tmp);
jxlExcelWriter.setExcelTemplate("testRead");
List<String[]> accounts = new ArrayList<String[]>();
//省略測試數據生成...根據不同需要生成不同類型的數據
jxlExcelWriter.writeArrays(accounts);
//jxlExcelWriter.writeBeans(accounts);
//jxlExcelWriter.writeMaps(accounts);

生成excel模板

File tmp = new File("testWriteTemplate.xls");
if (tmp.exists()) {
tmp.delete();
}
tmp.createNewFile();
JxlExcelWriter jxlExcelWriter = new JxlExcelWriter(tmp);
jxlExcelWriter.setExcelTemplate("testRead");
jxlExcelWriter.writeTemplate();

官方網站:http://www.baiduhome.net/lib/view/home/1451485335964

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!