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开发框架网发布内容,转载请附上原文出处连接
张国生
上一篇:C# NPOI导出excel绑定列的下拉数据源
下一篇:一个css让图标旋转起来
评论列表

发表评论

评论内容
昵称:
关联文章

YES-CMS内容管理系统 售价
PVE硬盘对应SATA口查询

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