国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

poi導出excel

RayKr / 1937人閱讀

摘要:積分消費明細對賬單其中,有四個參數,分別是,,,。導出讀取數據庫的信息,轉成。

public void detailExport() {
    
    String sourceSystem = getPara("source_system");
    String dataDate = getPara("data_date");
    Integer pointsType = getParaToInt("points_type");
    
    List zjPointsConsumeDetails = zjPointsConsumeDetailService.findByDate(sourceSystem, dataDate, pointsType);
    
    File modelFile = new File(PathKit.getWebRootPath() + File.separator + "excel" + File.separator +"pointsConsumeDetails.xlsx");
    File outputFile = new File(PathKit.getWebRootPath() + File.separator + "temp" + File.separator + "積分消費明細對賬單.xlsx");
    
    ExcelHelper excelHelper = SpringContextHolder.getBean(ExcelHelper.class);
    excelHelper.exportExcelFile("zjPointsConsumeDetailExcel", modelFile, outputFile, zjPointsConsumeDetails);
    renderFile(outputFile);
}

其中,exportExcelFile有四個參數,分別是String mapping,File modelFile,File outputFile,List<> dataList。mapping對應ZjPointsConsumeDetailExcel 類,ZjPointsConsumeDetailExcel 的作用是將數據庫中的字段與excel中展示的字段一一對應,并可進行特殊字段的轉換,代碼如下:

package com.cwl.excel;

import com.cwl.plugin.poi.ExcelField;
import com.cwl.plugin.poi.ExcelModel;

@ExcelModel(name="zjPointsConsumeDetailExcel", rowCount="4")
public class ZjPointsConsumeDetailExcel {

    @ExcelField(fieldName = "id", index = "0", title = "序號", type = ExcelField.CELL_TYPE_NUMERIC)
    private Long id;
    
    @ExcelField(fieldName = "consume_kind", index = "1", title = "消費分類", type = ExcelField.CELL_TYPE_STRING)
    private String consumeKind;
    
    @ExcelField(fieldName = "consume_abstract", index = "2", title = "消費摘要", type = ExcelField.CELL_TYPE_STRING)
    private String consumeAbstract;
    
    @ExcelField(fieldName = "points_type", index = "3", title = "積分類型", type = ExcelField.CELL_TYPE_NUMERIC, convert = {"0:普通積分", "1:白金積分"})
    private String pointsTypeName;
    
    @ExcelField(fieldName = "consume_points", index = "4", title = "消費分值", type = ExcelField.CELL_TYPE_NUMERIC)
    private Long consumePoints;
    
    @ExcelField(fieldName = "consume_time", index = "5", title = "消費時間", type = ExcelField.CELL_TYPE_STRING)
    private String consumeTime;
    
    @ExcelField(fieldName = "related_order", index = "6", title = "關聯訂單號", type = ExcelField.CELL_TYPE_STRING)
    private String relatedOrder;
    
}

以上僅是如何使用,有空補上源碼。

總結

導入:讀取Sheet信息,并且保存至數據庫。
導出:讀取數據庫的信息,轉成Sheet。

使用poi導出excel

參考博客:使用poi實現導入導出

    /**
     * 導出數據至Excel文件
     * @param excelColumns  報表頭信息
     * @param excelHeadConvertMap   需要對數據進行特殊轉換的列
     * @param modelFile  模板Excel文件
     * @param outputFile 導出文件
     * @param dataList  導入excel報表的數據來源
     * @return void
     * 2012-4-19 上午10:04:30
     */
    public void exportExcelFile(ExcelHead head, File modelFile, File outputFile, List dataList) {
        // 讀取導出excel模板
        InputStream inp = null;
        Workbook wb = null;
        try {
            inp = new FileInputStream(modelFile);
            wb = WorkbookFactory.create(inp);
            Sheet sheet = wb.getSheetAt(0);
            // 生成導出數據
            buildExcelData(sheet, head, dataList);
             
            // 導出到文件中
            FileOutputStream fileOut = new FileOutputStream(outputFile);
            wb.write(fileOut);
            fileOut.close();
        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        } catch (InvalidFormatException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    
     /**
     * 生成導出至Excel文件的數據
     * @param sheet 工作區間
     * @param excelColumns  excel表頭
     * @param excelHeadMap  excel表頭對應實體屬性
     * @param excelHeadConvertMap   需要對數據進行特殊轉換的列
     * @param dataList      導入excel報表的數據來源
     * @auther hubo
     * @return void
     * 2012-4-19 上午09:36:37
     */
    private void buildExcelData(Sheet sheet, ExcelHead head, List dataList) {
        List excelColumns = head.getColumns(); 
        Map excelHeadConvertMap = head.getColumnsConvertMap();
         
        // 將表結構轉換成Map
        Map excelHeadMap = convertExcelHeadToMap(excelColumns);
         
        // 從第幾行開始插入數據
        int startRow = head.getRowCount();
        int order = 1;
        //數據循環
        for (Object obj : dataList) {
            Row row = sheet.createRow(startRow++);
            ////字段循環(通過字段名,拿到對象該字段的值)
            for (int j = 0; j < excelColumns.size(); j++) {
                Cell cell = row.createCell(j);
                cell.setCellType(excelColumns.get(j).getType());
                String fieldName = excelHeadMap.get(j);
                if(fieldName != null) {
                    Object valueObject = BeanUtil.getProperty(obj, fieldName);
                     
                    // 如果存在需要轉換的字段信息,則進行轉換
                    if(excelHeadConvertMap != null && excelHeadConvertMap.get(fieldName) != null) {
                        valueObject = excelHeadConvertMap.get(fieldName).get(valueObject);
                    }
                     
                    if(valueObject == null) {
                        cell.setCellValue("");
                    } else if (valueObject instanceof Integer) {
                        cell.setCellValue((Integer)valueObject);
                    } else if (valueObject instanceof String) {
                        cell.setCellValue((String)valueObject);
                    } else if (valueObject instanceof Date) {
                        cell.setCellValue(new JDateTime((Date)valueObject).toString("YYYY-MM-DD"));
                    } else {
                        cell.setCellValue(valueObject.toString());
                    }
                } else {
                    cell.setCellValue(order++);
                }
            }
        }
    }

poi的使用及簡單介紹

1.創建工作簿 (WORKBOOK)  

HSSFWorkbook wb = new HSSFWorkbook();  

FileOutputStream fileOut = new FileOutputStream("workbook.xls");  

wb.write(fileOut);  

fileOut.close();  

2.創建工作表(SHEET)  

HSSFWorkbook wb = new HSSFWorkbook();  

HSSFSheet sheet1 = wb.createSheet("new sheet");  

HSSFSheet sheet2 = wb.createSheet("second sheet");  

FileOutputStream fileOut = new FileOutputStream("workbook.xls");  

wb.write(fileOut);  

fileOut.close();  

3.創建單元格(CELL)  

HSSFWorkbook wb = new HSSFWorkbook();  

HSSFSheet sheet = wb.createSheet("new sheet");  

// Create a row and put some cells in it. Rows are 0 based.  

HSSFRow row = sheet.createRow((short)0);  

// Create a cell and put a value in it.  

HSSFCell cell = row.createCell((short)0);  

cell.setCellValue(1);  

// Or do it on one line.  

row.createCell((short)1).setCellValue(1.2);  

row.createCell((short)2).setCellValue("This is a string");  

row.createCell((short)3).setCellValue(true);  

// Write the output to a file  

FileOutputStream fileOut = new FileOutputStream("workbook.xls");  

wb.write(fileOut);  

fileOut.close();  

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/66527.html

相關文章

  • POI如何高效導出百萬級Excel數據?

    摘要:閱讀原文如何高效導出百萬級數據在一個具有統計功能的系統中,導出功能幾乎是一定的,如何導出導出的數據有多少如何高效的導出簡介什么是就不用介紹了,這里主要說明不同版本下每個下的行列限制。 閱讀原文:POI如何高效導出百萬級Excel數據? 在一個具有統計功能的系統中,導出excel功能幾乎是一定的,如何導出excel?導出的數據有多少?如何高效的導出? Excel簡介什么是excel就不用...

    lemanli 評論0 收藏0
  • POI的使用及導出excel報表

    摘要:的使用及導出報表首先,了解是什么一基本概念是軟件基金會的開放源碼函式庫,提供給程序對格式檔案讀和寫的功能。 POI的使用及導出excel報表 首先,了解poi是什么? 一、基本概念 ? Apache POI是Apache軟件基金會的開放源碼函式庫,POI提供API給Java程序對Microsoft Office格式檔案讀和寫的功能。 二、基本結構 ? HSSF - 提供讀寫...

    Ilikewhite 評論0 收藏0
  • 使用ApachePOI生成XLSX格式Excel文檔大數據量導出

    摘要:最近在做使用進行大數據量導出,現在把其整理成工具類供大家參考。版本增加了前綴為相關的類,主要用于大數據量的寫入與讀取。 最近在做使用POI進行大數據量導出,現在把其整理成工具類供大家參考。Apache POI 3.8版本增加了前綴為SXSSF相關的類,主要用于大數據量的寫入與讀取。關于ApachePOI導出Excel基本的使用我這里就不詳解了,具體參考: Apache POI官方網站...

    Shihira 評論0 收藏0
  • Java導出excel文件

    摘要:效果預覽導出文件效果點擊下載彈出框效果代碼總覽為公司業務代碼,大多為從緩存或者數據庫中獲取導出數據,不影響導出功能。導出導出導出所有在線離線用戶成功導出所有在線離線用戶失敗引用導出表格 需求 將每個xmpp機房的在線/離線用戶信息導出到Excel表格中(定時任務+網頁按鈕),并在網頁上提供下載按鈕進行下載。 效果預覽 showImg(https://segmentfault.com/i...

    import. 評論0 收藏0
  • 慕課網_《解密JAVA實現Excel導入導出》學習總結

    時間:2017年07月06日星期四說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學源碼:無學習源碼:https://github.com/zccodere/s... 第一章:課程介紹 1-1 預備知識 基礎知識 struts2框架(上傳下載功能) xml解析技術(導入模板) JQuery EasyUI(前臺美觀) 課程目錄 實現方式 定制導入模版 導入文件 導...

    enrecul101 評論0 收藏0

發表評論

0條評論

RayKr

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<