c#在excel中筛选第二列的数据,然后导出第一列和第三列数据到数组中
时间: 2024-10-08 15:26:41 浏览: 40
在C#中,你可以使用Microsoft.Office.Interop.Excel库来操作Excel文件。首先,你需要引用这个库,并创建一个`Application`实例来连接Excel。下面是基本步骤:
1. 引入所需命名空间:
```csharp
using Microsoft.Office.Interop.Excel;
```
2. 打开Excel应用程序并选择工作表:
```csharp
var excelApp = new Application();
var workbook = excelApp.Workbooks.Open("your_file_path.xlsx");
var worksheet = workbook.ActiveSheet;
```
3. 筛选第二列(假设列B是你要筛选的列):
```csharp
Range dataRange = worksheet.UsedRange;
DataFiltercriteria criteria = new DataFiltercriteria(DataFilterOperator.ValueBetween, "", "");
dataRange.AutoFilter(1, criteria, true); // 第一列为列索引,0开始计数,所以第二列对应1
List<string> filteredSecondColumn = dataRange.Columns[2].SpecialCells(XlCellTypeVisible).Select细胞().Cast<string>().ToList(); // 获取过滤后的第二列内容
worksheet.AutoFilterMode = false; // 关闭筛选模式
```
4. 根据筛选结果获取第一列(通常假设为A列)和第三列(如果第三列为列C,索引为2)的数据:
```csharp
List<string> firstColumnData = dataRange.Columns[1].Select_cell().Cast<string>().ToList();
List<string> thirdColumnData = dataRange.Columns[3].Select_cell().Cast<string>().ToList();
```
5. 将筛选结果存储到数组中:
```csharp
string[,] resultArray = new string[firstColumnData.Count, 2];
for (int i = 0; i < firstColumnData.Count; i++)
{
resultArray[i, 0] = firstColumnData[i];
resultArray[i, 1] = thirdColumnData[i];
}
```
6. 最后记得关闭工作簿:
```csharp
workbook.Close(false);
excelApp.Quit();
```
阅读全文