using DataTable = System.Data.DataTable; using Workbook = Microsoft.Office.Interop.Excel.Workbook; using Worksheet = Microsoft.Office.Interop.Excel.Worksheet; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Mesnac.Action.ChemicalWeighing.Report.SolventReport { public class Export { string FileName = @"D:\WeightExportFile.xlsx"; DataTable dt; DataTable MoreDataTable; public void ExportTo(string fileName, DataTable dt1, DataTable dt2, DataTable dt3) { //dt = new DataTable(); //dt.Columns.Add("机台", typeof(string)); //dt.Columns.Add("湿混等待时间", typeof(string)); //dt.Columns.Add("RGV等待时间", typeof(string)); //dt.Columns.Add("总等待时间", typeof(string)); //MoreDataTable = new DataTable(); //MoreDataTable.Columns.Add("湿混等待时间", typeof(string)); //MoreDataTable.Columns.Add("RGV等待时间", typeof(string)); //MoreDataTable.Columns.Add("总等待时间", typeof(string)); //MoreDataTable.Columns.Add("起始时间", typeof(string)); //MoreDataTable.Columns.Add("结束时间", typeof(string)); // 使用 Microsoft Office Interop Excel 组件导出 Excel 文件 Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application(); Workbook workbook = excelApp.Workbooks.Add(); //AllExport(workbook); MoreDataExport(workbook, dt1, dt2, dt3); // 将 Excel 文件保存到磁盘 try { workbook.SaveAs(fileName); } catch (Exception e) { MessageBox.Show("请重新选择导出路径或关闭已打开的导出文件! " + e); } // 关闭 Excel 应用程序和工作簿对象,并释放资源 workbook.Close(); //excelApp.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook); //System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp); } /// /// 数据和导出 /// /// private void AllExport(Workbook workbook) { //DataTableSum(); Worksheet worksheet = (Worksheet)workbook.Worksheets[1]; worksheet.Name = "总量统计"; worksheet.Cells[1, 1] = "机台"; worksheet.Cells[1, 2] = "湿混等待时间"; worksheet.Cells[1, 3] = "RGV等待时间"; worksheet.Cells[1, 4] = "总等待时间"; int row = 2; //读取数据 foreach (DataRow item in dt.Rows) { worksheet.Cells[row, 1] = item[0]; worksheet.Cells[row, 2] = item[1]; worksheet.Cells[row, 3] = item[2]; worksheet.Cells[row, 4] = item[3]; row++; } System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet); } //详细数据导出 private void MoreDataExport(Workbook workbook, DataTable dt1, DataTable dt2, DataTable dt3) { for (int i = 1; i <= 3; i++) { if (i == 1) { Worksheet worksheet = (Worksheet)workbook.Worksheets.Add(); worksheet.Name = "执行计划报表"; worksheet.Cells[1, 1] = "执行批次"; worksheet.Cells[1, 2] = "产品名称"; worksheet.Cells[1, 3] = "计划号"; worksheet.Cells[1, 4] = "配方名"; worksheet.Cells[1, 5] = "执行状态"; worksheet.Cells[1, 6] = "计划批次"; worksheet.Cells[1, 7] = "完成批次"; worksheet.Cells[1, 8] = "开始时间"; worksheet.Cells[1, 9] = "结束时间"; worksheet.Cells[1, 10] = "总重量"; worksheet.Cells[1, 11] = "总误差"; int row = 2; foreach (DataRow item in dt1.Rows) { worksheet.Cells[row, 1].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 2].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 3].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 4].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 5].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 6].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 7].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 8].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 9].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 10].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 11].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 1] = item[0]; worksheet.Cells[row, 2] = item[1]; worksheet.Cells[row, 3] = item[2]; worksheet.Cells[row, 4] = item[4]; worksheet.Cells[row, 5] = item[6]; worksheet.Cells[row, 6] = item[7]; worksheet.Cells[row, 7] = item[8]; worksheet.Cells[row, 8] = item[9]; worksheet.Cells[row, 9] = item[10]; worksheet.Cells[row, 10] = item[13]; worksheet.Cells[row, 11] = item[15]; row++; } System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet); } if (i == 2) { Worksheet worksheet = (Worksheet)workbook.Worksheets.Add(); worksheet.Name = "执行计划车报表"; worksheet.Cells[1, 1] = "计划号"; worksheet.Cells[1, 2] = "执行批次"; worksheet.Cells[1, 3] = "总计重量"; worksheet.Cells[1, 4] = "总计误差"; int row = 2; foreach (DataRow item in dt2.Rows) { worksheet.Cells[row, 1].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 2].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 3].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 4].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 1] = item[1]; worksheet.Cells[row, 2] = item[2]; worksheet.Cells[row, 3] = item[3]; worksheet.Cells[row, 4] = item[4]; row++; } System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet); } if (i == 3) { Worksheet worksheet = (Worksheet)workbook.Worksheets.Add(); worksheet.Name = "计划详细数据"; worksheet.Cells[1, 1] = "计划号"; worksheet.Cells[1, 2] = "物料名称"; worksheet.Cells[1, 4] = "设定重量"; worksheet.Cells[1, 5] = "实际重量"; worksheet.Cells[1, 6] = "设定误差"; worksheet.Cells[1, 7] = "实际误差"; worksheet.Cells[1, 8] = "固含率"; int row = 2; foreach (DataRow item in dt3.Rows) { worksheet.Cells[row, 1].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 2].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 3].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 4].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 5].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 6].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 7].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 8].EntireColumn.NumberFormat = "@"; worksheet.Cells[row, 1] = item[2]; worksheet.Cells[row, 2] = item[5]; worksheet.Cells[row, 4] = item[6]; worksheet.Cells[row, 5] = item[8]; worksheet.Cells[row, 6] = item[7]; worksheet.Cells[row, 7] = item[9]; worksheet.Cells[row, 8] = item[12]; row++; } System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet); } } } } }