C# 您可以通过C扫描excel表格中包含信用卡格式数据的列吗#
我正在做一个卡号屏蔽程序。我们得到了这些人工创建的excel文档,需要屏蔽一组数字,但并不总是保证D列就是带有卡号的列。可以是D列,也可以是D和G列,等等。我知道这些文档总是至少有10行不计算标题C# 您可以通过C扫描excel表格中包含信用卡格式数据的列吗#,c#,.net,excel,C#,.net,Excel,我正在做一个卡号屏蔽程序。我们得到了这些人工创建的excel文档,需要屏蔽一组数字,但并不总是保证D列就是带有卡号的列。可以是D列,也可以是D和G列,等等。我知道这些文档总是至少有10行不计算标题 我想扫描excel工作簿中的工作表,检测哪些列包含数据,然后检查每个非空列的第三个单元格。如果它与至少9位长的数字字符串匹配,则将该列定义为数组中的卡片类型,然后返回并遍历满足该要求的列数组,并屏蔽所需的字符。这在Interops库中的某些C#方法和excel属性之间是否合理可行?是的,可以这样做。有
我想扫描excel工作簿中的工作表,检测哪些列包含数据,然后检查每个非空列的第三个单元格。如果它与至少9位长的数字字符串匹配,则将该列定义为数组中的卡片类型,然后返回并遍历满足该要求的列数组,并屏蔽所需的字符。这在Interops库中的某些C#方法和excel属性之间是否合理可行?是的,可以这样做。有几个库,让您可以访问Excel文档,并允许您扫描工作表、行、列和单元格值 有些库基于Interop COM接口Excel,并启动后台Excel进程,以完成提取信息的实际工作 像NPOI(用于xls和xlsx)或openxmlsdk(xlsx)这样的库可以直接访问Excel文件,而无需安装Excel。这对于Office文档的服务器端处理非常有价值。在NPOI中,扫描Excel文件的方式如下所示(只是给您一个想法)
var工作簿=新XSSF工作簿(数据流);
var sheet=workbook.GetSheetAt(0);
var rowEnumerator=sheet.GetRowEnumerator();
while(rowEnumerator.MoveNext())
{
IRow row=(XSSFRow)\u rowEnumerator.Current;
int colCount=row.LastCellNum;
var tableRow=新tableRow(colCount);
for(var c=0;c
是的。虽然使用像LinqToExcel这样的东西可能会更容易-
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))
{
...
}
}
}
}