国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ExcelReport第三篇:擴展元素格式化器

2019-11-17 02:36:50
字體:
來源:轉載
供稿:網友

ExcelReport第三篇:擴展元素格式化器

導航

目 錄:基于NPOI的報表引擎——ExcelReport

上一篇:ExcelReport源碼解析

概述

上篇中已介紹了ExcelRepor的架構,本篇將通過例子講述如何擴展元素格式化器以滿足更多的需求。

示例

1)談談新需求:

image

如圖所示,一個單元格內包含多個參數。

2)實現代碼:

PartFormatter.cs:

/*
 類:PartFormatter
 描述:單元格局部(元素)格式化器
 編 碼 人:韓兆新 日期:2015年01月25日
 修改記錄:
*/
using System.Drawing;
using NPOI.SS.UserModel;
namespace ExcelReport
{
    public class PartFormatter:ElementFormatter
    {
        PRivate Point _cellPoint;
        private string _parameterName;
        private string _value;
        public PartFormatter(Point cellPoint, string parameterName ,string value)
        {
            this._cellPoint = cellPoint;
            this._parameterName = parameterName;
            this._value = value;
        }
        public override void Format(SheetFormatterContext context)
        {
            var rowIndex = context.GetCurrentRowIndex(_cellPoint.X);
            var row = context.Sheet.GetRow(rowIndex);
            if (null == row)
            {
                row = context.Sheet.CreateRow(rowIndex);
            }
            var cell = row.GetCell(_cellPoint.Y);
            if (null == cell)
            {
                cell = row.CreateCell(_cellPoint.Y);
            }
            if (cell.CellType.Equals(CellType.String))
            {
                SetCellValue(cell, cell.StringCellValue.Replace(string.Format("$[{0}]", _parameterName), _value));
            }
        }
    }
}

(PartFormatter繼承ElementFormatter,實現Format方法)。

3)測試代碼:

//實例化一個參數容器,并加載模板填充規則文件
ParameterCollection collection = new ParameterCollection();
collection.Load(@"Template/Template.xml");
//實例化一個元素格式化器列表
List<ElementFormatter> formatters = new List<ElementFormatter>();
formatters.Add(new PartFormatter(collection["Sheet1", "Dept"],"Dept","物理"));
formatters.Add(new PartFormatter(collection["Sheet1", "Class"], "Class", "力學一"));
//導出文件到本地
Export.ExportToLocal(@"Template/Template.xls", saveFileDlg.FileName,
    new SheetFormatterContainer("Sheet1", formatters));

4)測試結果:

image

源碼下載:

image

下載地址:https://github.com/hanzhaoxin/ExcelReport


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 河西区| 建始县| 文化| 绍兴县| 进贤县| 桦川县| 扶风县| 贵溪市| 麦盖提县| 兰考县| 咸宁市| 丹凤县| 涞水县| 营口市| 平邑县| 临澧县| 建平县| 离岛区| 博乐市| 鄯善县| 开阳县| 汝阳县| 清原| 钦州市| 泊头市| 大兴区| 南安市| 华亭县| 南皮县| 高邑县| 介休市| 观塘区| 宜君县| 同仁县| 临城县| 罗江县| 沙田区| 阿坝| 甘泉县| 郸城县| 庄浪县|