【发布时间】:2016-06-19 01:29:23
【问题描述】:
我有一个 C# 程序,我在其中从一个包含大约 40000 个数字的 excel 文件中读取数据。这是我的代码的一部分:
Microsoft.Office.Interop.Excel.Application _excelApp = new Microsoft.Office.Interop.Excel.Application();
_excelApp.Visible = true;
string fileName = "D:\\data.xlsx";
Workbook workbook = _excelApp.Workbooks.Open(fileName, Type.Missing);
Worksheet worksheet = (Worksheet)workbook.Worksheets[1];
Range excelRange = worksheet.UsedRange;
Object[,] valueArray = (object[,])excelRange.get_Value(XlRangeValueDataType.xlRangeValueDefault);
int num = worksheet.UsedRange.Rows.Count;
workbook.Close(false, Type.Missing);
_excelApp.Quit();
for (int row = 1; row <= num; ++row)
{
data1.Add(Convert.ToDouble(valueArray[row, 1]));
data2.Add(Convert.ToDouble(valueArray[row, 2]));
}
每次运行程序,excel文件都会出现片刻,然后关闭。但是windows后台进程中有一些打开的excel文件,会消耗内存,降低windows的速度。如何在我的代码中完全关闭 excel 文件并将它们从内存中退出?
谢谢。
【问题讨论】: