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());
}
}
}
}