C#读取一个excel中某列的数据在另一个EXCEL中筛选,将得到的数据放入数组
时间: 2024-10-08 21:21:49 浏览: 42
在C#中,你可以使用EPPlus库来读取Excel文件并操作数据。首先,你需要安装EPPlus NuGet包才能进行操作。以下是一个简单的步骤来读取指定工作表和列,并将数据存储到数组中:
1. 安装EPPlus:通过NuGet Package Manager,在Visual Studio中搜索并安装"EPPlus"。
```csharp
using OfficeOpenXml;
```
2. 读取Excel文件:
```csharp
string filePath = "源文件路径.xlsx";
ExcelPackage excel = new ExcelPackage(new FileInfo(filePath));
Worksheet sourceSheet = excel.Workbook.Worksheets["源工作表名称"];
List<string> columnData = new List<string>();
// 获取指定列数据
int columnIndex = 1; // 假设你要的是第一列(0为A列)
for (int row = 1; row <= sourceSheet.Dimension.End.Row; row++)
{
string cellValue = sourceSheet.Cells[row, columnIndex].Value.ToString();
if (!string.IsNullOrEmpty(cellValue))
{
columnData.Add(cellValue);
}
}
excel.Dispose(); // 关闭文件后释放资源
```
3. 筛选和写入目标Excel:
```csharp
string targetFilePath = "目标文件路径.xlsx";
ExcelPackage targetExcel = new ExcelPackage(new FileInfo(targetFilePath));
Worksheet targetSheet = targetExcel.Workbook.Worksheets.Add("目标工作表名称");
// 对数据进行筛选(这里假设你想保留已存在的行和添加新值)
List<int> filteredRows = Filter(columnData); // 自定义筛选函数
foreach (var rowIndex in filteredRows)
{
targetSheet.Cells[rowIndex + 1, 1] = columnData[rowIndex];
}
targetExcel.SaveAs();
targetExcel.Dispose();
// 筛选函数示例(可以根据需要修改)
private static List<int> Filter(List<string> data)
{
// 这里只是一个基本示例,实际根据需求定制筛选条件
return data.Where(x => x.Contains("筛选关键词")).Select((x, i) => i).ToList();
}
```
阅读全文