<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-126  評論-247  文章-5  trackbacks-0
    Jexcel
    基于JAVA的依賴于POI的EXCEL讀寫包裝
    項目地址:https://github.com/lychie/jexcel
    示例工程結(jié)構(gòu)
    pom.xml
    <repositories>
      <repository>
        <id>lychie-maven-repo</id>
        <url>https://raw.github.com/lychie/maven-repo/master/releases</url>
      </repository>
    </repositories>

    <dependencies>
      <dependency>
        <groupId>org.lychie</groupId>
        <artifactId>jexcel</artifactId>
        <version>1.0.1</version>
      </dependency>
    </dependencies>
    寫出EXCEL
    package org.lychie.jexcel.demo;

    import java.io.File;
    import java.util.List;
    import java.util.ArrayList;
    import org.lychie.jexcel.WritableExcel;
    import org.lychie.jexcel.demo.model.Employee;

    /**
     * 寫出對象到EXCEL文檔
     * 
     * @date 2015-01-21
     * 
    @author Lychie Fan
     
    */
    public class WriteExcel {

        public static void main(String[] args) {

            // 創(chuàng)建一個可寫的EXCEL對象
            WritableExcel excel = new WritableExcel(getData());
            // 設(shè)置POJO屬性與EXCEL單元格的映射關(guān)系
            excel.setMapper("id", "編號");
            excel.setMapper("name", "姓名");
            excel.setMapper("hiredate", "入職日期");
            excel.setMapper("salary", "薪資");
            // 將對象內(nèi)容寫出到EXCEL文檔
            excel.write(new File("src/main/resources/employee.xlsx"));

        }

        private static List<Employee> getData() {
            List<Employee> list = new ArrayList<Employee>();
            list.add(new Employee("楊忠杰"));
            list.add(new Employee("葉水燕"));
            list.add(new Employee("楊曉婷"));
            list.add(new Employee("葉國珠"));
            list.add(new Employee("何國群"));
            return list;
        }

    }
    結(jié)果圖
    設(shè)置寫出的EXCEL樣式
    public class WriteExcel {

        public static void main(String[] args) {

            // 創(chuàng)建一個可寫的EXCEL對象
            WritableExcel excel = new WritableExcel(getData());
            // 設(shè)置POJO屬性與EXCEL單元格的映射關(guān)系
            excel.setMapper("id", "編號");
            excel.setMapper("name", "姓名");
            excel.setMapper("hiredate", "入職日期");
            excel.setMapper("salary", "薪資");
            
            // 單元格值格式對象
            ValueFormat format = excel.getValueFormat();
            // 設(shè)置薪資顯示格式為貨幣格式
            format.set("salary", ValueFormat.CURRENCY_FORMAT);
            // 主體對象
            Body body = excel.getBody();
            // 設(shè)置單元格內(nèi)容水平方向居中
            body.setHorizontalAlignment(Body.HORIZONTAL_CENTER);
            
            // 將對象內(nèi)容寫出到EXCEL文檔
            excel.write(new File("src/main/resources/employee.xlsx"));

        }

    }
    結(jié)果圖
    讀取EXCEL文檔
    package org.lychie.jexcel.demo;

    import java.util.List;
    import org.lychie.jutil.IOUtil;
    import org.lychie.jutil.Printer;
    import org.lychie.jexcel.ReadableExcel;
    import org.lychie.jexcel.demo.model.Person;

    /**
     * 讀取EXCEL文檔
     * 
     * @date 2015-01-21
     * 
    @author Lychie Fan
     
    */
    public class ReadExcel {

        public static void main(String[] args) {

            // 創(chuàng)建一個可讀的EXCEL對象
            ReadableExcel excel = new ReadableExcel(Person.class);
            // 設(shè)置POJO屬性與EXCEL單元格的映射關(guān)系
            excel.setMapper("id", "編號");
            excel.setMapper("age", "年齡");
            excel.setMapper("sex", "性別");
            excel.setMapper("name", "姓名");
            excel.setMapper("date", "生日");
            // 載入EXCEL文檔
            excel.load(IOUtil.getResourceAsStream("persons.xlsx"));
            // 解析EXCEL文檔成集合
            List<Person> list = excel.toList();
            // 打印輸出集合的內(nèi)容
            Printer.print(list);

        }

    }
    persons.xlsx
    輸出結(jié)果
    讀取EXCEL文檔,校驗文檔內(nèi)容合法性
    public class ReadExcel {

        public static void main(String[] args) {

            // 創(chuàng)建一個可讀的EXCEL對象
            ReadableExcel excel = new ReadableExcel(Person.class);
            // 設(shè)置POJO屬性與EXCEL單元格的映射關(guān)系
            excel.setMapper("id", "編號");
            excel.setMapper("age", "年齡");
            excel.setMapper("sex", "性別");
            excel.setMapper("name", "姓名");
            excel.setMapper("date", "生日");
            // 載入EXCEL文檔
            excel.load(IOUtil.getResourceAsStream("persons.xlsx"));
            
            try {
                // 校驗EXCEL文檔內(nèi)容的合法性
                excel.validate(new BasicValidation());
            } catch (ValidationCastException e) {
                e.printStackTrace();
                return ;
            }
            
            // 解析EXCEL文檔成集合
            List<Person> list = excel.toList();
            // 打印輸出集合的內(nèi)容
            Printer.print(list);

        }

    }
    persons.xlsx
    輸出結(jié)果
    讀取EXCEL文檔,自定義校驗規(guī)則
    public class ReadExcel {

        public static void main(String[] args) {

            // 創(chuàng)建一個可讀的EXCEL對象
            ReadableExcel excel = new ReadableExcel(Person.class);
            // 設(shè)置POJO屬性與EXCEL單元格的映射關(guān)系
            excel.setMapper("id", "編號");
            excel.setMapper("age", "年齡");
            excel.setMapper("sex", "性別");
            excel.setMapper("name", "姓名");
            excel.setMapper("date", "生日");
            // 載入EXCEL文檔
            excel.load(IOUtil.getResourceAsStream("persons.xlsx"));
            
            try {
                // 校驗EXCEL文檔內(nèi)容的合法性
                excel.validate(new MyValidation());
            } catch (ValidationCastException e) {
                e.printStackTrace();
                return ;
            }
            
            // 解析EXCEL文檔成集合
            List<Person> list = excel.toList();
            // 打印輸出集合的內(nèi)容
            Printer.print(list);

        }
        
        private static class MyValidation extends BasicValidation {

            @Override
            public boolean validate(Class<?> type, String name, String value) {
                // 自定義校驗規(guī)則, 在 super.validate 之前校驗, 以達到短路父校驗規(guī)則的目的
                if (name.equals("age")) {
                    Integer age = Integer.valueOf(value);
                    if (age >= 18 && age < 55) {
                        return true;
                    } else {
                        setCause("年齡不在 [18, 55) 區(qū)間");
                        return false;
                    }
                }
                // 最后調(diào)父類校驗方法
                return super.validate(type, name, value);
            }

        }

    }
    persons.xlsx
    輸出結(jié)果
    資源
    示例工程源碼下載:jexcel-demo.zip(提取碼:6398)





      
    posted on 2015-01-22 09:38 fancydeepin 閱讀(5049) 評論(2)  編輯  收藏

    評論:
    # re: jexcel 讀寫EXCEL 2015-01-22 22:36 | 京山游俠
    mark  回復(fù)  更多評論
      
    # re: jexcel 讀寫EXCEL 2015-02-04 20:19 | 小學(xué)徒V
    吊炸天  回復(fù)  更多評論
      

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久久久久久久免费看无码| 亚洲av无码一区二区三区网站| 国产精品福利在线观看免费不卡| 亚洲JLZZJLZZ少妇| 国产成人亚洲影院在线观看| 91精品手机国产免费| 国产亚洲综合久久| 亚洲国产成人久久精品动漫| 永久免费视频v片www| 亚洲国产综合精品中文第一| 亚洲日韩涩涩成人午夜私人影院 | 3344免费播放观看视频| 亚洲av无码成人精品国产| 亚洲AV无码不卡无码| 免费国产在线观看| 国产成人精品久久免费动漫| 一级一级一片免费高清| 国产成人亚洲精品| 亚洲国产成人久久精品影视| 亚洲另类激情专区小说图片| 久久久久久久91精品免费观看| 中文字幕看片在线a免费| 亚洲Av永久无码精品一区二区| 亚洲色偷偷偷网站色偷一区| 亚洲午夜av影院| 国产麻豆剧传媒精品国产免费| 2021国内精品久久久久精免费| 国产区在线免费观看| 亚洲第一街区偷拍街拍| 亚洲成a人片7777| 久久精品夜色国产亚洲av| 亚洲国产精品毛片av不卡在线| 成人片黄网站色大片免费| 91麻豆国产免费观看| 免费无码av片在线观看 | 最近免费中文字幕4| 蜜臀AV免费一区二区三区| 精品视频一区二区三区免费| 成人久久久观看免费毛片| 自拍偷自拍亚洲精品播放| 亚洲欧美日韩中文高清www777|