写入Excel,需要用到的引用
using Excel = Microsoft.Office.Interop.Excel;
using Microsoft.Office.Interop.Excel;
首先需要在模型中选择物体,然后获取指定报表属性的集合,方便写入Excel。
private void button6_Click(object sender, EventArgs e)
{
//获取所选零件的指定报表属性的集合
ArrayList allProfile = GetProperty.GetReportProperty_string("PROFILE"); ;
ArrayList allID = GetProperty.GetReportProperty_int32("ID");
Excel.Application myExcel = new Excel.Application
{
Visible = false,
DisplayAlerts = false
};
string fileName = @"d:\123.xlsx";
Workbook workbook = myExcel.Workbooks.Open(fileName);
Worksheet worksheet = (Worksheet)workbook.Worksheets[1];
Range r1 = worksheet.UsedRange;
r1.Clear();
for (int i = 0; i < allID.Count; i++)
{
worksheet.Cells[i + 1, 1] = allID[i];
worksheet.Cells[i + 1, 2] = allProfile[i];
}
worksheet.Columns.EntireColumn.AutoFit();
//存盘退出Excel,可能会出现无法退出Excel进程
Marshal.ReleaseComObject(r1);
r1 = null;
Marshal.ReleaseComObject(worksheet);
worksheet = null;
workbook.Close(true);
Marshal.ReleaseComObject(workbook);
workbook = null;
myExcel.Quit();
Marshal.ReleaseComObject(myExcel);
myExcel = null;
GC.Collect();
GC.WaitForPendingFinalizers();
MessageBox.Show("写入完毕!");
//实在无法退出Excel进程,只能重开当前程序
//System.Windows.Forms.Application.Restart();
}