BlueColor.NPOIExtensions 0.0.2

指定条件,合并特定列单元格,生成 Excel 文件

Install-Package BlueColor.NPOIExtensions -Version 0.0.2
dotnet add package BlueColor.NPOIExtensions --version 0.0.2
<PackageReference Include="BlueColor.NPOIExtensions" Version="0.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add BlueColor.NPOIExtensions --version 0.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

eg:

using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System;
using System.Data;
using System.IO;

namespace BlueColor.NPOIExtensions.Samples
{
    public class Program
    {
        private static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            CreateWorkbook_HSSFWorkbook();
        }

        /// <summary>
        /// HSSFWorkbook
        /// 创建工作簿
        /// </summary>
        public static void CreateWorkbook_HSSFWorkbook()
        {
            IWorkbook workbook = new HSSFWorkbook();
            var sheetA1 = workbook.CreateSheet("Sheet A1");
            var sheetA2 = workbook.CreateSheet("Sheet A2");

            sheetA1.AddMultipleRowsByPropertyCellConfig(
                propertyCellConfigs: Program.GetDemoPropertyCellConfigs(),
                dataTable: Program.GetDemoDataTable(),
                startRowNum: 0
                );

            FileStream sw = File.Create("test.xlsx");
            workbook.Write(sw);
            sw.Close();
        }

        /// <summary>
        /// 获取示例DataTable
        /// </summary>
        /// <returns></returns>
        public static DataTable GetDemoDataTable()
        {
            var table = new DataTable("Demo");

            DataColumn column;
            DataRow row;

            column = new DataColumn();
            column.DataType = Type.GetType("System.String");
            column.Caption = "Name";
            column.ColumnName = "Name";
            table.Columns.Add(column);

            column = new DataColumn();
            column.DataType = Type.GetType("System.Int32");
            column.Caption = "Age";
            column.ColumnName = "Age";
            column.DefaultValue = 21;
            table.Columns.Add(column);

            for (int i = 0; i <= 10; i++)
            {
                row = table.NewRow();
                row["Name"] = "AA";
                //row["Age"] = 21;
                table.Rows.Add(row);
            }
            for (int i = 0; i <= 10; i++)
            {
                row = table.NewRow();
                row["Name"] = "BB";
                row["Age"] = 22;
                table.Rows.Add(row);
            }

            return table;
        }

        /// <summary>
        /// 获取示例PropertyCellConfigs
        /// </summary>
        /// <returns></returns>
        public static PropertyCellConfigList GetDemoPropertyCellConfigs()
        {
            var configs = new PropertyCellConfigList { };

            configs.Add(new PropertyCellConfig
            {
                PropertyName = "Name",
                Title = "名称",
                ColumnIndex = 0,
                ConditionColumn = true,
                AllowMerge = true,
                IsIgnored = false,
                //DataFormat
            });
            configs.Add(new PropertyCellConfig
            {
                PropertyName = "Age",
                Title = "年龄",
                ColumnIndex = 1,
                ConditionColumn = false,
                AllowMerge = true,
                IsIgnored = false,
                DataFormat = "0"
            });

            return configs;
        }
    }
}

test.xlsx
Alt text

eg:

using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System;
using System.Data;
using System.IO;

namespace BlueColor.NPOIExtensions.Samples
{
    public class Program
    {
        private static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            CreateWorkbook_HSSFWorkbook();
        }

        /// <summary>
        /// HSSFWorkbook
        /// 创建工作簿
        /// </summary>
        public static void CreateWorkbook_HSSFWorkbook()
        {
            IWorkbook workbook = new HSSFWorkbook();
            var sheetA1 = workbook.CreateSheet("Sheet A1");
            var sheetA2 = workbook.CreateSheet("Sheet A2");

            sheetA1.AddMultipleRowsByPropertyCellConfig(
                propertyCellConfigs: Program.GetDemoPropertyCellConfigs(),
                dataTable: Program.GetDemoDataTable(),
                startRowNum: 0
                );

            FileStream sw = File.Create("test.xlsx");
            workbook.Write(sw);
            sw.Close();
        }

        /// <summary>
        /// 获取示例DataTable
        /// </summary>
        /// <returns></returns>
        public static DataTable GetDemoDataTable()
        {
            var table = new DataTable("Demo");

            DataColumn column;
            DataRow row;

            column = new DataColumn();
            column.DataType = Type.GetType("System.String");
            column.Caption = "Name";
            column.ColumnName = "Name";
            table.Columns.Add(column);

            column = new DataColumn();
            column.DataType = Type.GetType("System.Int32");
            column.Caption = "Age";
            column.ColumnName = "Age";
            column.DefaultValue = 21;
            table.Columns.Add(column);

            for (int i = 0; i <= 10; i++)
            {
                row = table.NewRow();
                row["Name"] = "AA";
                //row["Age"] = 21;
                table.Rows.Add(row);
            }
            for (int i = 0; i <= 10; i++)
            {
                row = table.NewRow();
                row["Name"] = "BB";
                row["Age"] = 22;
                table.Rows.Add(row);
            }

            return table;
        }

        /// <summary>
        /// 获取示例PropertyCellConfigs
        /// </summary>
        /// <returns></returns>
        public static PropertyCellConfigList GetDemoPropertyCellConfigs()
        {
            var configs = new PropertyCellConfigList { };

            configs.Add(new PropertyCellConfig
            {
                PropertyName = "Name",
                Title = "名称",
                ColumnIndex = 0,
                ConditionColumn = true,
                AllowMerge = true,
                IsIgnored = false,
                //DataFormat
            });
            configs.Add(new PropertyCellConfig
            {
                PropertyName = "Age",
                Title = "年龄",
                ColumnIndex = 1,
                ConditionColumn = false,
                AllowMerge = true,
                IsIgnored = false,
                DataFormat = "0"
            });

            return configs;
        }
    }
}

test.xlsx
Alt text

Release Notes

方法:AddMultipleRowsByPropertyCellConfig(this ISheet sheet, PropertyCellConfigList propertyCellConfigs, DataTable dataTable, int startRowNum = 0) Bug Repair

属性对应单元格配置:PropertyCellConfig.cs

  • .NETStandard 2.0

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
0.0.2 315 4/22/2019
0.0.1 215 2/17/2019