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.
#r "nuget: BlueColor.NPOIExtensions, 0.0.2"
For F# scripts that support #r syntax, copy this into the source code to reference the package.
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
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
Release Notes
方法:AddMultipleRowsByPropertyCellConfig(this ISheet sheet, PropertyCellConfigList propertyCellConfigs, DataTable dataTable, int startRowNum = 0) Bug Repair
属性对应单元格配置:PropertyCellConfig.cs
Dependencies
-
.NETStandard 2.0
- NPOI (>= 2.4.1)
Used By
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.