ReportsSavingBl.cs
3.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
using System;
using System.Collections.Generic;
using OS.Spin.ViewModle.Flaw;
using Microsoft.Office.Interop.Excel;
using OS.Spin.Common;
namespace OS.Spin.BusinessLayer.SubBusiness
{
public class ReportsSavingBl
{
protected Application objExcelApp;//定义Excel Application对象
private Workbooks objExcelWorkBooks;//定义Workbook工作簿集合对象
protected Workbook objExcelWorkbook;//定义Excel workbook工作簿对象
private Worksheet objExcelWorkSheet;//定义Workbook工作表对象
public void SaveReport(List<MGoodFlaws> reports)
{
if (null == reports)
{
return;
}
try
{
var sys = System.IO.Directory.GetCurrentDirectory();
string workTmp = System.IO.Path.Combine(sys, @"Server\Report\Template.xlsx");
string report = System.IO.Path.Combine(sys, "Reports");
if (!System.IO.Directory.Exists(report))
{
System.IO.Directory.CreateDirectory(report);
}
objExcelApp = new ApplicationClass();
objExcelWorkBooks = objExcelApp.Workbooks;
objExcelWorkbook = objExcelWorkBooks.Open(workTmp, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
objExcelWorkSheet = (Worksheet)objExcelWorkbook.Worksheets[1]; //strSheetName是指的Exce工作簿的Sheet名,如果没有命名则为"1"
//var header = 2;
var row = 3;
foreach (var good in reports)
{
objExcelWorkSheet.Cells[row, 1] = good.SnNo;
objExcelWorkSheet.Cells[row, 2] = good.Meter;
//objExcelWorkSheet.Cells[row, 3] = good.Score;
objExcelWorkSheet.Cells[row, 3] = OS.Spin.Running.Cache.GetInstance().ClothWidth + "毫米";
objExcelWorkSheet.Cells[row, 4] = good.FinishedTime.ToLocalTime().ToString();
var i = 0;
foreach (var rowFlaws in good.Flaws)
{
foreach (var flaw in rowFlaws.Flaws)
{
objExcelWorkSheet.Cells[row, 5] = "瑕疵";
objExcelWorkSheet.Cells[row + 1, 5] = "位置";
//objExcelWorkSheet.Cells[row + 2, 6 + i] = "扣分";
objExcelWorkSheet.Cells[row, 6] = flaw.FlawName;
objExcelWorkSheet.Cells[row + 1, 6] = flaw.Meter.ToString("N") + "米";
//objExcelWorkSheet.Cells[row + 2, 7 + i] = flaw.Score;
//i++;
row += 2;
}
//row += 3;
//i = 0;
}
//row += 3;
}
string fileName = System.IO.Path.Combine(report, string.Format("{0}.xlsx", DateTime.Now.ToString("yyyyMMddHHmmss")));
//objExcelWorkbook.SaveAs(string.Format(@"{0}.xlsx", DateTime.Now.ToString("yyyyMMddHHmmssms")), Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
objExcelWorkbook.SaveAs(fileName, Type.Missing, "", "", Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, 1, false, Type.Missing, Type.Missing, Type.Missing);
}
catch (Exception ex)
{
LogisTrac.WriteLog(string.Format("SaveReport:{0}", ex.Message));
}
finally
{
objExcelApp.Quit();
}
}
}
}