【发布时间】:2021-12-10 00:11:47
【问题描述】:
我正在寻找可以读取 Excel 文档并可以在该文档中搜索单词的程序 谢谢 使用此代码可以读取所有单元格,但我想添加可以搜索我输入的单词的功能(console.readLine)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Excel = Microsoft.Office.Interop.Excel;
namespace ReadFromExcelComponente
{
class Program
{
static void Main(string[] args)
{
//lese den excel
Excel.Application ExcelApp;
Excel.Workbook workbook;
Excel.Worksheet worksheet;
Excel.Range range;
int row = 0;
int column = 0;
ExcelApp = new Excel.Application();
workbook = ExcelApp.Workbooks.Open(@"D:\Map", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
worksheet = (Excel.Worksheet)workbook.Worksheets.get_Item(1);
range = worksheet.UsedRange;
List<String> myList = new List<string>();
for (row = 1; row <= range.Rows.Count; row++)
{
for (column = 1; column <= range.Columns.Count; column++)
{
Console.WriteLine(" Coulmn Number: " + column + "--> " + (range.Cells[row, column] as Excel.Range).Value2);
myList.Add(range.Cells[column].ToString());
}
}
Console.WriteLine(myList[2]);
Console.WriteLine(range.Cells[2, 2].Value);
workbook.Close(true, null, null);
ExcelApp.Quit();
Console.ReadKey();
}
}
}
【问题讨论】:
-
欢迎来到 SO。我假设您没有收到任何错误。如果您有包含工作表中单元格值的列表
myList,那么您不能在myList中“搜索”您要查找的单词吗?另外,如果您确实找到了搜索词的匹配项,您希望发生什么?另外,您是否需要使用Interop.Excel?我只是说还有其他第三方 Excel 阅读器做得更好。 -
最后,您应该“释放”您的代码创建的 COM 对象,即 Excel 应用程序和工作簿。关闭工作簿并退出应用程序是不够的……如果您多次运行代码,那么,请查看 Windows 任务管理器……我敢打赌,您会看到许多 Excel 应用程序在后台运行。这被称为“泄漏”资源,您希望避免这种情况。