91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何用java創建Excel并導出?

發布時間:2020-05-29 09:25:20 來源:億速云 閱讀:360 作者:Leah 欄目:編程語言

如何用java創建Excel并導出?針對這個問題,今天小編總結這篇有關用java創建Excel并導出的文章,希望幫助更多想解決這個辦法同學找到更加簡單易行的辦法。

1、首先創建一個Excel也就是

        //聲明工作薄
    HSSFWorkbook wb = new HSSFWorkbook();

2、接下來未頁簽sheet重命名,也就是

     //sheet頁簽部分
   HSSFSheet sheet = wb.createSheet("頁簽的名字");

3、規劃一下有多少列,再起一個標題,也就是

    //合并標題
    sheet.addMergedRegion(new Region(0, (short)0, (short)0,(short)(規劃的列數)));

4、創建一個表頭,也就是

         //創建表頭
    row = sheet.createRow(1);

5、循環插入表格,也就是加一個for循環

  //第一層為循環創建行
        for (int i = 0; i < contentLst.size(); i++) {
            row = sheet.createRow(i+2);
            row.setHeight((short) 550);
            //第二層創建每行的單元格,并填內容
            for (int j = 0; j < contentLst.get(i).length; j++) {
                cell = row.createCell(j);
                cell.setCellValue(String.valueOf(contentLst.get(i)[j]));
                cell.setCellStyle(shstyle);
            }
        }

6、內容填完了,你不覺得有的字多有的字少,也就是列寬、行高有問題。怎么辦呢?也就是

        //創建標題
    HSSFRow row = sheet.createRow(0);
    //設置標題行高
    row.setHeight((short) 行高數);

          //自定義列寬部分,你將每個列寬作為參數傳過來具體每列多寬得自己測試了。
    if(liekuanLst != null && liekuanLst.size() > 0){
        for (int i = 0; i < liekuanLst.size(); i++) {
            sheet.setColumnWidth((short)i, liekuanLst.get(i));
        }
    }

7、內容填完了是不是好看,加點樣式?也就是

            //居中字體等樣式區域
    sheet.setHorizontallyCenter(true);
    //主題
    HSSFCellStyle titlefontshstyle = wb.createCellStyle();
    HSSFFont titlefont = wb.createFont();
    setcontentStyleTable(titlefontshstyle, titlefont, "黑體", 20, true, false);

public static void setcontentStyleTable(HSSFCellStyle shstyle, HSSFFont titlefont, String string, int i, Boolean is_bold, Boolean is_border) {
                titlefont.setFontHeightInPoints((short) i);
                titlefont.setFontName(string);
                shstyle.setWrapText(true);//自動換行
                shstyle.setAlignment(HSSFCellStyle.VERTICAL_CENTER);
                if(i != 11 && is_bold){
                        titlefont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
                }
                if(is_border){
                        shstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);//下邊框
                        shstyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左
                        shstyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右
                        shstyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上
                }
                shstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中
                shstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//定義字體樣式左右居中
                shstyle.setFont(titlefont);
        }

8、樣式也調了,是不是調一調打印,也就是

        //添加打印樣式
    addPrintClassData(sheet, false);

            //打印的紙張樣式
public static void addPrintClassData(HSSFSheet sheet, Boolean is_landscape) {
    sheet.setMargin(HSSFSheet.TopMargin, 0.4);//上≈2
    sheet.setMargin(HSSFSheet.BottomMargin, 0.4);//下≈2
    sheet.setMargin(HSSFSheet.LeftMargin, 0.2);//左≈0.5
    sheet.setMargin(HSSFSheet.RightMargin, 0.2);//右≈0.5
    sheet.setHorizontallyCenter(true);
    sheet.setDefaultRowHeight((short) 400);//設置默認行高
    HSSFPrintSetup ps = sheet.getPrintSetup();
    ps.setLandscape(is_landscape);//true橫向,false縱向
    ps.setPaperSize(HSSFPrintSetup.A4_PAPERSIZE);//設置紙張A4
}

9、Excel創建完了,你怎么給我呢?那得看你要什么了,也就是

    ByteArrayOutputStream bos = null;
                try{
                        /*1轉為輸入流*/
                        bos = new ByteArrayOutputStream();
                        wb.write(bos);
                        byte[] bytes = bos.toByteArray();
                        InputStream in = new ByteArrayInputStream(bytes);
                        /*2直接寫入Excel文檔*/
                        /*String fileName = new Date().getTime()+"frozen_excel.xls";
                        FileOutputStream output = new FileOutputStream("/temp/"+fileName);
                        wb.write(output);
                        output.close();*/
                        bos.close();
                }catch (Exception e){
                        e.printStackTrace();
                }

【總結】
看看上面9步需要哪些參數,將參數封裝做一個統一的公共方法,也就是

 /**
         * 導出Excel
         * @param title Excel標題
         * @param liekuanLst 設置的每個列寬
         * @param biaotouLst 表頭內容
         * @param contentLst 單元格內容
         * @return 待定
         */
        public String export_Excel(String title, List<Integer> liekuanLst, List<String> biaotouLst, List<Object[]> contentLst){
                //聲明工作薄
                HSSFWorkbook wb = new HSSFWorkbook();
                //sheet頁簽部分
                HSSFSheet sheet = wb.createSheet(title);
                //自定義列寬部分
                if(liekuanLst != null && liekuanLst.size() > 0){
                        for (int i = 0; i < liekuanLst.size(); i++) {
                                sheet.setColumnWidth((short)i, liekuanLst.get(i));
                        }
                }
                //居中字體等樣式區域
                sheet.setHorizontallyCenter(true);
                //主題
                HSSFCellStyle titlefontshstyle = wb.createCellStyle();
                HSSFFont titlefont = wb.createFont();
                setcontentStyleTable(titlefontshstyle, titlefont, "黑體", 20, true, false);
                //表頭樣式
                HSSFCellStyle btfontshstyle = wb.createCellStyle();
                HSSFFont btfont =  wb.createFont();
                setcontentStyleTable(btfontshstyle, btfont, "宋體", 10, true, true);
                //內容樣式
             HSSFCellStyle shstyle = wb.createCellStyle();
                HSSFFont contentfont =  wb.createFont();
                setcontentStyle(shstyle, contentfont, "宋體", 11);

                //創建標題
                HSSFRow row = sheet.createRow(0);
                //設置標題行高
                row.setHeight((short) 920);
                HSSFCell cell = row.createCell(0);
                cell.setCellValue(title);
                cell.setCellStyle(titlefontshstyle);
                for (int i = 1; i < liekuanLst.size(); i++) {
                        cell = row.createCell(i);
                        cell.setCellStyle(titlefontshstyle);
                }
                //合并標題
                sheet.addMergedRegion(new Region(0, (short)0, (short)0,(short)(liekuanLst.size()-1)));

                //創建表頭
                row = sheet.createRow(1);
                //行高
                row.setHeight((short) 550);
                if(biaotouLst != null && biaotouLst.size() > 0){
                        for (int i = 0; i < biaotouLst.size(); i++) {
                                cell = row.createCell(i);
                                cell.setCellValue(biaotouLst.get(i));
                                cell.setCellStyle(btfontshstyle);
                        }
                }

                if(contentLst != null && contentLst.size() > 0){
                        //循環插入表格內容
                        for (int i = 0; i < contentLst.size(); i++) {
                                //當前行
                                row = sheet.createRow(i+2);
                                row.setHeight((short) 550);
                                //每個單元格
                                for (int j = 0; j < contentLst.get(i).length; j++) {
                                        cell = row.createCell(j);
                                        cell.setCellValue(String.valueOf(contentLst.get(i)[j]));
                                        cell.setCellStyle(shstyle);
                                }
                        }
                }
                //添加打印樣式
                addPrintClassData(sheet, false);
                /**
                 * 寫入數據
                 */
                ByteArrayOutputStream bos = null;
                try{
                        /*1轉為輸入流*/
                        bos = new ByteArrayOutputStream();
                        wb.write(bos);
                        byte[] bytes = bos.toByteArray();
                        InputStream in = new ByteArrayInputStream(bytes);
                        /*2直接寫入Excel文檔*/
                        /*String fileName = new Date().getTime()+"frozen_excel.xls";
                        FileOutputStream output = new FileOutputStream("/temp/"+fileName);
                        wb.write(output);
                        output.close();*/
                        bos.close();
                }catch (Exception e){
                        e.printStackTrace();
                }
                return "";
        }
        //單元格樣式
        public static void setcontentStyle(HSSFCellStyle shstyle, HSSFFont titlefont, String string, int i) {
                titlefont.setFontHeightInPoints((short) i);
                titlefont.setFontName(string);
                shstyle.setWrapText(true);//自動換行
                if(i != 11){
                        titlefont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
                }
                shstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//定義字體樣式左右居中
                shstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中
                shstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);//下邊框
                shstyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左
                shstyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右
                shstyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上
                shstyle.setFont(titlefont);
        }
        public static void setcontentStyleTable(HSSFCellStyle shstyle, HSSFFont titlefont, String string, int i, Boolean is_bold, Boolean is_border) {
                titlefont.setFontHeightInPoints((short) i);
                titlefont.setFontName(string);
                shstyle.setWrapText(true);//自動換行
                shstyle.setAlignment(HSSFCellStyle.VERTICAL_CENTER);
                if(i != 11 && is_bold){
                        titlefont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
                }
                if(is_border){
                        shstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);//下邊框
                        shstyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左
                        shstyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右
                        shstyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上
                }
                shstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//上下居中
                shstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//定義字體樣式左右居中
                shstyle.setFont(titlefont);
        }
        //打印的紙張樣式
        public static void addPrintClassData(HSSFSheet sheet, Boolean is_landscape) {
                sheet.setMargin(HSSFSheet.TopMargin, 0.4);//上≈2
                sheet.setMargin(HSSFSheet.BottomMargin, 0.4);//下≈2
                sheet.setMargin(HSSFSheet.LeftMargin, 0.2);//左≈0.5
                sheet.setMargin(HSSFSheet.RightMargin, 0.2);//右≈0.5
                sheet.setHorizontallyCenter(true);
                sheet.setDefaultRowHeight((short) 400);//設置默認行高
                HSSFPrintSetup ps = sheet.getPrintSetup();
                ps.setLandscape(is_landscape);//true橫向,false縱向
                ps.setPaperSize(HSSFPrintSetup.A4_PAPERSIZE);//設置紙張A4
        }

如何用java創建Excel并導出?

關于用java創建Excel并導出的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

滦南县| 阳泉市| 任丘市| 北票市| 宁都县| 滦南县| 共和县| 衡山县| 尼勒克县| 阳信县| 平罗县| 木里| 长宁区| 分宜县| 合阳县| 鄂尔多斯市| 时尚| 高阳县| 河北省| 神池县| 鸡泽县| 明星| 阳城县| 抚宁县| 洛浦县| 望城县| 清苑县| 精河县| 双桥区| 通河县| 阿克陶县| 清远市| 酉阳| 巩义市| 镇雄县| 稷山县| 西华县| 江川县| 洛浦县| 江都市| 栾川县|