Blame view

OS.Spin/OS.Spin.BusinessLayer/SubBusiness/ReportsSavingBl.cs 3.89 KB
8ca6e89d   Tuo Wenbo   20211021
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();
              }
          }
      }
  }