C# NPOI导出excel绑定列的下拉数据源


C# 全选
using System;
using System.IO;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;

class Program
{
    static void Main(string[] args)
    {
        // 创建一个新的工作簿
        IWorkbook workbook = new XSSFWorkbook();
        ISheet sheet = workbook.CreateSheet("Sheet1");

        // 准备下拉数据源
        string[] data = new string[] { "Option 1", "Option 2", "Option 3" };

        // 将数据源添加到工作簿中的一个隐藏工作表
        ISheet hiddenSheet = workbook.CreateSheet("HiddenSheet");
        for (int i = 0; i < data.Length; i++)
        {
            IRow row = hiddenSheet.CreateRow(i);
            ICell cell = row.CreateCell(0);
            cell.SetCellValue(data[i]);
        }

        // 创建一个下拉列表约束
        IName namedCell = workbook.CreateName();
        namedCell.NameName = "DropDownOptions";
        namedCell.RefersToFormula = $"HiddenSheet!$A$1:$A${data.Length}";

        // 将下拉列表约束应用到目标列
        var validation = new XSSFDataValidationHelper((XSSFSheet)sheet);
        var dvConstraint = (XSSFDataValidationConstraint)validation.CreateFormulaListConstraint("DropDownOptions");
        var cellRangeAddressList = new CellRangeAddressList(0, 65535, 0, 0);
        var dataValidation = (XSSFDataValidation)validation.CreateValidation(dvConstraint, cellRangeAddressList);
        dataValidation.ShowErrorBox = true;
        dataValidation.ErrorTitle = "Invalid Selection";
        dataValidation.ErrorStyle = ExcelDataValidation.ErrorStyle.Stop;
        dataValidation.CreateErrorBox("Invalid Selection", "Please select a valid option from the dropdown list.");

        sheet.AddValidationData(dataValidation);

        // 保存 Excel 文件
        using (FileStream file = new FileStream("output.xlsx", FileMode.Create))
        {
            workbook.Write(file);
        }

        Console.WriteLine("Excel exported successfully.");
    }
}

在这个示例中,我们创建了一个隐藏的工作表,用于存储下拉列表的数据源。然后,我们创建了一个下拉列表约束,并将其应用到目标列。最后,我们将工作簿保存为 Excel 文件。

这样,你就可以使用 NPOI 库在 C# 中导出 Excel 并绑定列的下拉数据源了。

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
张国生
上一篇:winform应用退出不彻底的解决办法
下一篇:一个css让图标旋转起来
评论列表

发表评论

评论内容
昵称:
关联文章

C# NPOI导出excel数据
WPF_15_格式化数据
数据模式
Excel文件数据导入和导出功能实现
winform对象数据
WPF Command并传参(以DataGrid示例)
从一次解决Nancy参数“bug”开始发布自己第一个nuget包(下篇)
WPF 双向到非公开 set 方法属性在 NET 45 和 NET Core 行为不同
使用.NET 6开发TodoList应用(26)——实现Configuration和Option强类型
YESWEB开发框架,账套域名
从一次解决Nancy参数“bug”开始发布自己第一个nuget包(上篇)
C#进化——C#发展史、C#1.0-10.0语法系统性梳理、C#与JAVA对比
支付宝支付报错:40003,三方应用未服务商账号
HttpContext.Current:异步模式疑似陷阱之
NPOI 读取EXCEL(2003,2007)并转换为DataTable
C#】C#中使用GDAL3(三):Windows编译插件驱动
.NET C#教程初级篇 1-1 基本数据类型及其存储方式
C#数据类型和常见数据库(SQLServer,MySQL,Oracle,SQLite)数据类型对应关系
.Net 高性能分表分库组件-连接模式原理
LabVIEW生成.NETDLL——C#下调用NI数据采集设备功能一种方法 [原创www.cnblogs.com/helesheng]

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码