nodyang@aliyun.com 2 months ago
parent c0cc0c029a
commit 76a1495c6b

@ -1,5 +1,5 @@
using FreeSql.DataAnnotations; using FreeSql.DataAnnotations;
using Microsoft.Office.Interop.Excel;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;

@ -1,6 +1,6 @@
using DevExpress.ClipboardSource.SpreadsheetML; using DevExpress.ClipboardSource.SpreadsheetML;
using Mesnac.Action.ChemicalWeighing.MainDetailControl.Entity; using Mesnac.Action.ChemicalWeighing.MainDetailControl.Entity;
using Microsoft.Office.Interop.Excel;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data; using System.Data;
@ -10,8 +10,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using DataTable = System.Data.DataTable; using DataTable = System.Data.DataTable;
using Workbook = Microsoft.Office.Interop.Excel.Workbook;
using Worksheet = Microsoft.Office.Interop.Excel.Worksheet;
namespace Mesnac.Action.ChemicalWeighing.LjReport.WetWaitTime namespace Mesnac.Action.ChemicalWeighing.LjReport.WetWaitTime
{ {
@ -26,55 +25,16 @@ namespace Mesnac.Action.ChemicalWeighing.LjReport.WetWaitTime
{ {
this.list = list; this.list = list;
FileName = address; FileName = address;
this.ExportTo();
} }
public Export(List<Lj_RGVTimeRecord> list) public Export(List<Lj_RGVTimeRecord> list)
{ {
this.list = list; this.list = list;
this.ExportTo();
} }
public void ExportTo()
{
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);
// 将 Excel 文件保存到磁盘
try
{
workbook.SaveAs(this.FileName);
MessageBox.Show("导出成功!");
}
catch(Exception e)
{
MessageBox.Show("请重新选择导出路径或关闭已打开的导出文件! " + e);
}
// 关闭 Excel 应用程序和工作簿对象,并释放资源
workbook.Close();
excelApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
}
/// <summary> /// <summary>
/// 数据和导出 /// 数据和导出
@ -82,51 +42,13 @@ namespace Mesnac.Action.ChemicalWeighing.LjReport.WetWaitTime
/// <param name="workbook"></param> /// <param name="workbook"></param>
private void AllExport(Workbook workbook) 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) private void MoreDataExport(Workbook workbook)
{ {
for(int i = 1; i <= 8; i++)
{
MoreData(i);
Worksheet worksheet = (Worksheet)workbook.Worksheets.Add();
worksheet.Name = "机台"+ i + "详细数据";
worksheet.Cells[1, 1] = "湿混等待时间";
worksheet.Cells[1, 2] = "RGV等待时间";
worksheet.Cells[1, 3] = "总等待时间";
worksheet.Cells[1, 4] = "发送接料信号时间";
worksheet.Cells[1, 5] = "RGV离开时间";
int row = 2;
foreach (DataRow item in MoreDataTable.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];
worksheet.Cells[row, 5] = item[4];
row++;
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
}
} }
/// <summary> /// <summary>

@ -172,6 +172,10 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\PlugInPlatform\Mesnac.PlugIn.dll</HintPath> <HintPath>..\..\..\PlugInPlatform\Mesnac.PlugIn.dll</HintPath>
</Reference> </Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\A3Lib\Json\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Configuration" /> <Reference Include="System.Configuration" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />

@ -3,7 +3,7 @@ using ICSharpCode.Core;
using Mesnac.Action.Base; using Mesnac.Action.Base;
using Mesnac.Action.ChemicalWeighing.Entity.Report; using Mesnac.Action.ChemicalWeighing.Entity.Report;
using Microsoft.Office.Interop.Excel;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -93,65 +93,6 @@ namespace Mesnac.Action.ChemicalWeighing.Report.DryMixer
/// <param name="dryMixerDos"></param> /// <param name="dryMixerDos"></param>
public void DataTabletoExcel(string strFileName, System.Data.DataTable tmpDataTable, DryMixerDos dryMixerDos) public void DataTabletoExcel(string strFileName, System.Data.DataTable tmpDataTable, DryMixerDos dryMixerDos)
{ {
///先得到datatable的行数
int rowNum = tmpDataTable.Rows.Count;
///列数
int columnNum = tmpDataTable.Columns.Count;
///声明一个应用程序类实例
Microsoft.Office.Interop.Excel.Application xlApp = new ApplicationClass();
//创建一个新工作簿
Workbook xlBook = xlApp.Workbooks.Add();
///在工作簿中得到sheet。
_Worksheet oSheet = (_Worksheet)xlBook.Worksheets[1];
#region 绘制列
//绘制配方名和开始时间
oSheet.Cells[1, 1] = "设备";
oSheet.Cells[1, 2] = "Dos";
oSheet.Cells[1, 3] = "批次号";
oSheet.Cells[1, 4] = "物料代码";
oSheet.Cells[1, 5] = "设定重量";
oSheet.Cells[1, 6] = "设定公差";
oSheet.Cells[1, 7] = "实际重量";
oSheet.Cells[1, 8] = "实际公差";
oSheet.Cells[1, 9] = "记录时间";
oSheet.Cells[2, 1] = dryMixerDos.eqNo;
oSheet.Cells[2, 2] = dryMixerDos.dos;
oSheet.Cells[2, 3] = dryMixerDos.batch;
oSheet.Cells[2, 4] = dryMixerDos.matCode;
oSheet.Cells[2, 5] = dryMixerDos.setValue;
oSheet.Cells[2, 6] = dryMixerDos.setToler;
oSheet.Cells[2, 7] = dryMixerDos.actValue;
oSheet.Cells[2, 8] = dryMixerDos.setToler;
oSheet.Cells[2, 9] = dryMixerDos.recordTime;
//自定义方法,绘制合并表头
oSheet.Cells[3, 1] = "设备";
oSheet.Cells[3, 2] = "Mix";
oSheet.Cells[3, 3] = "批次";
oSheet.Cells[3, 4] = "步号";
oSheet.Cells[3, 5] = "动作";
oSheet.Cells[3, 6] = "时间";
oSheet.Cells[3, 7] = "温度";
oSheet.Cells[3, 8] = "速度";
oSheet.Cells[3, 9] = "记录时间";
#endregion
//将DataTable中的数据导入Excel中
for (int i = 0; i < rowNum; i++)
{
for (int j = 0; j < columnNum; j++)
{
///excel中的列是从1开始的
xlApp.Cells[i + 4, j + 1] = tmpDataTable.Rows[i][j].ToString();
}
}
oSheet.SaveAs(strFileName);
} }
/// <summary> /// <summary>

@ -3,7 +3,7 @@ using ICSharpCode.Core;
using Mesnac.Action.Base; using Mesnac.Action.Base;
using Mesnac.Action.ChemicalWeighing.Entity.Report; using Mesnac.Action.ChemicalWeighing.Entity.Report;
using Microsoft.Office.Interop.Excel;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -93,65 +93,7 @@ namespace Mesnac.Action.ChemicalWeighing.Report.GelDoser
/// <param name="gelDoserDos"></param> /// <param name="gelDoserDos"></param>
public void DataTabletoExcel(string strFileName, System.Data.DataTable tmpDataTable, GelDoserDos_Water gelDoserDos) public void DataTabletoExcel(string strFileName, System.Data.DataTable tmpDataTable, GelDoserDos_Water gelDoserDos)
{ {
///先得到datatable的行数
int rowNum = tmpDataTable.Rows.Count;
///列数
int columnNum = tmpDataTable.Columns.Count;
///声明一个应用程序类实例
Microsoft.Office.Interop.Excel.Application xlApp = new ApplicationClass();
//创建一个新工作簿
Workbook xlBook = xlApp.Workbooks.Add();
///在工作簿中得到sheet。
_Worksheet oSheet = (_Worksheet)xlBook.Worksheets[1];
#region 绘制列
//绘制配方名和开始时间
oSheet.Cells[1, 1] = "设备";
oSheet.Cells[1, 2] = "Dos";
oSheet.Cells[1, 3] = "批次号";
oSheet.Cells[1, 4] = "物料代码";
oSheet.Cells[1, 5] = "设定重量";
oSheet.Cells[1, 6] = "设定公差";
oSheet.Cells[1, 7] = "实际重量";
oSheet.Cells[1, 8] = "实际公差";
oSheet.Cells[1, 9] = "记录时间";
oSheet.Cells[2, 1] = gelDoserDos.eqNo;
oSheet.Cells[2, 2] = gelDoserDos.dos;
oSheet.Cells[2, 3] = gelDoserDos.batch;
oSheet.Cells[2, 4] = gelDoserDos.matCode;
oSheet.Cells[2, 5] = gelDoserDos.setValue;
oSheet.Cells[2, 6] = gelDoserDos.setToler;
oSheet.Cells[2, 7] = gelDoserDos.actValue;
oSheet.Cells[2, 8] = gelDoserDos.setToler;
oSheet.Cells[2, 9] = gelDoserDos.recordTime;
//自定义方法,绘制合并表头
oSheet.Cells[3, 1] = "设备";
oSheet.Cells[3, 2] = "Mix";
oSheet.Cells[3, 3] = "批次";
oSheet.Cells[3, 4] = "步号";
oSheet.Cells[3, 5] = "动作";
oSheet.Cells[3, 6] = "时间";
oSheet.Cells[3, 7] = "温度";
oSheet.Cells[3, 8] = "速度";
oSheet.Cells[3, 9] = "记录时间";
#endregion
//将DataTable中的数据导入Excel中
for (int i = 0; i < rowNum; i++)
{
for (int j = 0; j < columnNum; j++)
{
///excel中的列是从1开始的
xlApp.Cells[i + 4, j + 1] = tmpDataTable.Rows[i][j].ToString();
}
}
oSheet.SaveAs(strFileName);
} }
/// <summary> /// <summary>

@ -3,7 +3,7 @@ using ICSharpCode.Core;
using Mesnac.Action.Base; using Mesnac.Action.Base;
using Mesnac.Action.ChemicalWeighing.Entity.Report; using Mesnac.Action.ChemicalWeighing.Entity.Report;
using Microsoft.Office.Interop.Excel;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -86,51 +86,7 @@ namespace Mesnac.Action.ChemicalWeighing.Report.WetMixer
/// <param name="wetMixerDevice"></param> /// <param name="wetMixerDevice"></param>
public void DataTabletoExcel(string strFileName, System.Data.DataTable tmpDataTable, WetMixerDevice wetMixerDevice) public void DataTabletoExcel(string strFileName, System.Data.DataTable tmpDataTable, WetMixerDevice wetMixerDevice)
{ {
///先得到datatable的行数
int rowNum = tmpDataTable.Rows.Count;
///列数
int columnNum = tmpDataTable.Columns.Count;
///声明一个应用程序类实例
Microsoft.Office.Interop.Excel.Application xlApp = new ApplicationClass();
//创建一个新工作簿
Workbook xlBook = xlApp.Workbooks.Add();
///在工作簿中得到sheet。
_Worksheet oSheet = (_Worksheet)xlBook.Worksheets[1];
#region 绘制列
//绘制配方名和开始时间
oSheet.Cells[1, 1] = "设备";
oSheet.Cells[1, 2] = "记录时间";
oSheet.Cells[2, 1] = wetMixerDevice.eqNo;
oSheet.Cells[2, 2] = wetMixerDevice.recordTime;
//自定义方法,绘制合并表头
oSheet.Cells[3, 1] = "设备";
oSheet.Cells[3, 2] = "Mix";
oSheet.Cells[3, 3] = "批次";
oSheet.Cells[3, 4] = "步号";
oSheet.Cells[3, 5] = "动作";
oSheet.Cells[3, 6] = "时间";
oSheet.Cells[3, 7] = "温度";
oSheet.Cells[3, 8] = "速度";
oSheet.Cells[3, 9] = "记录时间";
#endregion
//将DataTable中的数据导入Excel中
for (int i = 0; i < rowNum; i++)
{
for (int j = 0; j < columnNum; j++)
{
///excel中的列是从1开始的
xlApp.Cells[i + 4, j + 1] = tmpDataTable.Rows[i][j].ToString();
}
}
oSheet.SaveAs(strFileName);
} }
/// <summary> /// <summary>

@ -7,8 +7,7 @@ using System.Linq;
using System.Windows.Forms; using System.Windows.Forms;
using System.Xml; using System.Xml;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.Core.Services;
using Mesnac.Action.ChemicalWeighing.FinishBatch;
using Mesnac.Gui.Run.Global; using Mesnac.Gui.Run.Global;
namespace MCRun namespace MCRun
{ {

Loading…
Cancel
Save