C#怎样读取含有宏操作的excel的单元格的值

C#读取excel的时候,如果excel中包含宏,比如输入身份证号码,自动填充性别那一列和出生年月那一列。读取性别的时候会出来一连串的宏字符,怎样能只读取excel显示出来的单元格内容啊。大神们,跪求了。。。

该回答引用ChatGPT

在读取单元格内容时,可以使用第三方库,例如 EPPlus 或 NPOI。这两个库都可以读取Excel中的单元格,并且可以获取到显示的内容,而不是宏代码本身。


下面是一个使用EPPlus读取单元格的代码示例:

using System;
using OfficeOpenXml;

namespace ReadExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var package = new ExcelPackage(new System.IO.FileInfo(@"C:\Test.xlsx")))
            {
                var worksheet = package.Workbook.Worksheets[1];
                var cell = worksheet.Cells[1, 1];
                Console.WriteLine(cell.Text);
            }
        }
    }
}

NPOI类似,可以参考这里的代码示例:

using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.IO;

namespace ReadExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var stream = new FileStream(@"C:\Test.xlsx", FileMode.Open, FileAccess.Read))
            {
                IWorkbook workbook = new XSSFWorkbook(stream);
                ISheet sheet = workbook.GetSheetAt(0);
                IRow row = sheet.GetRow(0);
                ICell cell = row.GetCell(0);
                Console.WriteLine(cell.ToString());
            }
        }
    }
}