是否有可能制作一个应用程序,从文件夹中读取多个Excel文件并从中提取一些信息?
是否有可能制作一个应用程序,从文件夹中读取多个Excel文件并从中提取一些信息?
using Excel = Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;
然后,在一个方法内部,您需要创建一个Application对象:
Excel.Application application = new Excel.Application();
其次,为每个想要读取的工作簿创建一个Workbook对象,如下所示:
Excel.Workbook workbookOne;
Excel.Workbook workbookTwo;
Excel.Workbook workbookThree;
workbookOne = application.Workbooks.Open(@"C:\workbookOneLocation.xlsx");
workbookTwo = application.Workbooks.Open(@"C:\workbookTwoLocation.xlsx");
workbookThree = application.Workbooks.Open(@"C:\workbookThreeLocation.xlsx");
string firstPieceOfInformationINeed;
string[] secondPieceOfInformationINeed;
double? thirdPieceOfInformationINeed;
假设我们需要的第一条信息是工作簿一中第一张工作表上A1单元格中的字符串,第二条信息是工作簿二中第二张工作表上B2-B4单元格中的内容,第三条信息是工作簿三中第三张工作表上C5单元格中的数字。我们可以这样做:
string firstPieceOfInformationINeed;
string[] secondPieceOfInformationINeed;
double? thirdPieceOfInformationINeed;
Excel.Worksheet worksheet;
Excel.Range range;
worksheet = workbookOne.Sheets[1];
range = worksheet.Cells["1", "1"];
firstPieceOfInformationINeed = range.Value as string;
worksheet = workbookTwo.Sheets[2];
range = worksheet.Range["B2", "B4"];
secondPieceOfInformationINeed = range.Value as string[];
worksheet = workbookThree.Sheets[3];
range = worksheet.Cells["3", "5"];
thirdPieceOfInformationINeed = range.Value as double?;
然后,我们使用布尔值来指示是否要保存更改,关闭工作簿:
workbookOne.Close(true);
workbookTwo.Close(false);
workbookThree.Close(true);
application.Quit();
Marshal.ReleaseComObject(application);
现在您已经完成了Excel操作,将所需的各种信息存储为C#变量,您可以随心所欲地处理这些变量。
是的,如果你不想使用Excel Interop,你可以使用ClosedXML,它适用于Excel 2007及以上版本。