你可以通过C#扫描excel表格中有信用卡格式数据的列吗?

我正在做一个卡号掩蔽过程。 我们得到这些人类创build的Excel文档,并且需要屏蔽一组数字,但是并不总是保证列D将成为具有卡号的列。 可能只是列D,或D和G等,我知道这些文件将始终有至less10行不计算标题。

我想运行Excel工作簿中的工作表的扫描,并检测哪些列有数据,然后检查每个非空列的第三个单元格。 如果它匹配至less9位数字的数字string,则将该列定义为数组中的卡片types,然后返回并遍历满足该要求的列数组并掩盖所需的字符。 在Interops库中的一些C#方法和excel属性之间这是合理可行的吗?

是的,这是可能的。 有几个库在那里,让您访问Excel文档,让你扫描工作表,行,列和单元格值。

一些库是基于Interop COM接口的Excel,并启动一个后台Excel进程来完成提取信息的实际工作。

像NPOI(用于xls和xlsx)或Open XML SDK(xlsx)的库可直接访问Excel文件,而无需安装Excel。 这对Office文档的服务器端处理极其有用。 在NPOI扫描一个Excel文件看起来像这样(只是给你一个想法)。

var workbook = new XSSFWorkbook(dataStream); var sheet = workbook.GetSheetAt(0); var rowEnumerator = sheet.GetRowEnumerator(); while (rowEnumerator.MoveNext()) { IRow row = (XSSFRow)_rowEnumerator.Current; int colCount = row.LastCellNum; var tableRow = new TableRow(colCount); for (var c = 0; c < colCount; c++) { var cell = row.GetCell(c); if (cell != null) { if (IsCreditCardNumber(c)) { ... } } } }