Memory 使用Microsoft.Office.Interop.Excel解析Excel文件-在内存中挂起Excel.exe进程
您好,我使用Microsoft.Office.Interop.excel解析excel表。下面是我将excel表解析为数据表的代码。它工作得很好Memory 使用Microsoft.Office.Interop.Excel解析Excel文件-在内存中挂起Excel.exe进程,memory,c#-4.0,process,freeze,excel-interop,Memory,C# 4.0,Process,Freeze,Excel Interop,您好,我使用Microsoft.Office.Interop.excel解析excel表。下面是我将excel表解析为数据表的代码。它工作得很好 public static DataTable ImportExcelToDataTable(String path) { var app = new Application {Visible = false}; Workbook workBook = app.Workbooks.Open(path,
public static DataTable ImportExcelToDataTable(String path)
{
var app = new Application {Visible = false};
Workbook workBook = app.Workbooks.Open(path, 0, true, 5, "", "",
true, XlPlatform.xlWindows, Type.Missing, false,
false, 0, true, 1, 0);
Sheets sheets = workBook.Worksheets;
var activeSheet = (Worksheet) sheets.Item[1];
Range activeSheetRange = activeSheet.UsedRange;
var dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Name");
for (int i = 1; i <= activeSheetRange.Rows.Count; i++)
{
DataRow dr = dt.NewRow();
for (int j = 1; j <= activeSheetRange.Columns.Count; j++)
{
string value = ((Range) activeSheetRange.Cells[i, j]).Value2.ToString();
dr[j - 1] = value;
}
dt.Rows.Add(dr);
dt.AcceptChanges();
}
app.Quit();
app.Workbooks.Close();
GC.Collect();
return dt;
}
公共静态数据表ImportExcelToDataTable(字符串路径)
{
var app=新应用程序{Visible=false};
工作簿=app.Workbooks.Open(路径,0,true,5,“,”,
true,XlPlatform.xlWindows,类型.缺失,false,
假,0,真,1,0);
工作表=工作簿。工作表;
var activeSheet=(工作表)sheets.Item[1];
范围activeSheetRange=activeSheet.UsedRange;
var dt=新数据表();
dt.列。添加(“ID”);
dt.列。添加(“名称”);
对于(int i=1;i您可能需要使用Marshal.ReleaseComObject-请参阅和的答案