添加项目文件。

This commit is contained in:
liming 蔡
2026-07-14 13:55:17 +08:00
parent 63759495f2
commit 8bbdf78731
335 changed files with 81415 additions and 0 deletions
+259
View File
@@ -0,0 +1,259 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Windows.Forms;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using OfficeOpenXml;
namespace JY.Utility
{
public class OpenOfficeXML
{
/// <summary>
/// EPPlusToExcel
/// </summary>
/// <param name="_D">数据集合</param>
/// <param name="strFileName">Excel文件名</param>
public static void Out_CeLiang(List<DataList> _D, string strFileName)
{
using (OfficeOpenXml.ExcelPackage package = new OfficeOpenXml.ExcelPackage(new FileInfo(strFileName)))
{
string TableName = DateTime.Now.ToString("yyyy-MM-dd");
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(TableName);
#region 绘制列头
worksheet.Cells[1, 1].Value = "不良项目";
worksheet.Cells[1, 2].Value = "数量";
//worksheet.Cells[1, 3].Value = "规格3";
//worksheet.Cells[1, 4, 1, 5].Value = "合并单元格";
//worksheet.Cells[1, 4, 1, 5].Merge = true;
#endregion
#region 数据行
int i = 1;
foreach (DataList Item in _D)
{
worksheet.Cells[i + 1, 1].Value = Item.G1;
worksheet.Cells[i + 1, 2].Value = Item.G2;
//worksheet.Cells[i + 1, 3].Value = Item.G3;
//worksheet.Cells[i + 1, 4, i + 1, 5].Value = Item.G4;
//worksheet.Cells[i + 1, 4, i + 1, 5].Merge = true;
i++;
}
#endregion
if (false == System.IO.Directory.Exists(System.AppDomain.CurrentDomain.BaseDirectory + @"Excel\"))
System.IO.Directory.CreateDirectory(System.AppDomain.CurrentDomain.BaseDirectory + @"Excel\");
package.Save();
}
}
public static void Out_TimeCeLiang(List<DataList> _D, string strFileName)
{
using (OfficeOpenXml.ExcelPackage package = new OfficeOpenXml.ExcelPackage(new FileInfo(strFileName)))
{
string TableName = DateTime.Now.ToString("yyyy-MM-dd");
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add(TableName);
#region 绘制列头
worksheet.Cells[1, 1].Value = "不良项目";
worksheet.Cells[1, 2].Value = "数量";
//worksheet.Cells[1, 3].Value = "规格3";
//worksheet.Cells[1, 4, 1, 5].Value = "合并单元格";
//worksheet.Cells[1, 4, 1, 5].Merge = true;
#endregion
#region 数据行
int i = 1;
foreach (DataList Item in _D)
{
worksheet.Cells[i + 1, 1].Value = Item.G1;
worksheet.Cells[i + 1, 2].Value = Item.G2;
//worksheet.Cells[i + 1, 3].Value = Item.G3;
//worksheet.Cells[i + 1, 4, i + 1, 5].Value = Item.G4;
//worksheet.Cells[i + 1, 4, i + 1, 5].Merge = true;
i++;
}
#endregion
if (false == System.IO.Directory.Exists(System.AppDomain.CurrentDomain.BaseDirectory + @"Excel\"))
System.IO.Directory.CreateDirectory(System.AppDomain.CurrentDomain.BaseDirectory + @"Excel\");
package.Save();
}
}
/// <summary>
/// ExportExcel(使用NPOI的方式)
/// </summary>
/// <param name="DT"></param>
public static int ExportExcel(DataTable DT, string selectDate, ref string strErr)
{
strErr = "";
try
{
if (DT == null & DT.Rows.Count <= 0)
{
strErr = "请先查询统计数据后再执行导出操作!";
return 1;
}
string strFilePath = "";
HSSFWorkbook hssfworkbookDown;
string modelExlPath = Application.StartupPath + "\\EmailTemplate\\Model.xls";
if (File.Exists(modelExlPath) == false) //模板不存在
{
strErr = "程序根目录下EmailTemplate文件夹内找不到导出模板文件!";
return 2;
}
using (FileStream file = new FileStream(modelExlPath, FileMode.Open, FileAccess.Read))
{
hssfworkbookDown = new HSSFWorkbook(file);
file.Close();
}
WriterExcel(hssfworkbookDown, 0, DT);
string filename = selectDate + ".xls";
strFilePath = Application.StartupPath + "\\Temp\\TEEnrollmentForm";
if (Directory.Exists(strFilePath) == false)
{
Directory.CreateDirectory(strFilePath);
}
strFilePath = strFilePath + "\\\\" + filename;
FileStream files = new FileStream(strFilePath, FileMode.Create);
hssfworkbookDown.Write(files);
files.Close();
if (File.Exists(strFilePath) == false) //附件生成失败
{
strErr = "生成EXCEL文件失败";
return 3;
}
strErr = strFilePath;
return 4;
}
catch (Exception ex)
{
strErr = ex.Message;
}
return 0;
}
/// <summary>
/// WriterExcel
/// </summary>
/// <param name="hssfworkbookDown"></param>
/// <param name="sheetIndex"></param>
/// <param name="DT"></param>
public static void WriterExcel(HSSFWorkbook hssfworkbookDown, int sheetIndex, DataTable DT)
{
try
{
#region 设置单元格样式
//字体
HSSFFont fontS9 = (HSSFFont)hssfworkbookDown.CreateFont();
fontS9.FontName = "Arial";
fontS9.FontHeightInPoints = 10;
fontS9.Boldweight = (short)NPOI.SS.UserModel.FontBoldWeight.Normal;
//表格
ICellStyle TableS9 = (ICellStyle)hssfworkbookDown.CreateCellStyle();
TableS9.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
TableS9.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
TableS9.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
TableS9.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
TableS9.WrapText = true;
TableS9.SetFont(fontS9);
#endregion
HSSFSheet sheet = (HSSFSheet)hssfworkbookDown.GetSheetAt(sheetIndex);
hssfworkbookDown.SetSheetHidden(sheetIndex, false);
hssfworkbookDown.SetActiveSheet(sheetIndex);
int n = 2; //因为模板有表头,所以从第2行开始写
for (int j = 0; j < DT.Columns.Count; j++)
{
HSSFRow dataRow = (HSSFRow)sheet.CreateRow(j + n);
//string cv = DT.Columns[j].Caption;
//string strDepID = DT.Rows[j]["序号"].ToString().Trim();
//dataRow.CreateCell(0);
//dataRow.Cells[0].SetCellValue(strDepID == "" ? DT.Rows[j]["日期"].ToString() : "");
dataRow.CreateCell(0);
dataRow.Cells[0].SetCellValue(DT.Rows[j]["日期"].ToString());
dataRow.CreateCell(1);
dataRow.Cells[1].SetCellValue(DT.Rows[j]["班次"].ToString());
dataRow.CreateCell(2);
dataRow.Cells[2].SetCellValue(DT.Rows[j]["班别"].ToString());
dataRow.CreateCell(3);
dataRow.Cells[3].SetCellValue(DT.Rows[j]["工单号"].ToString());
dataRow.CreateCell(4);
dataRow.Cells[4].SetCellValue(DT.Rows[j]["客户名称"].ToString());
dataRow.CreateCell(5);
dataRow.Cells[5].SetCellValue(DT.Rows[j]["投入总数"].ToString());
dataRow.CreateCell(6);
dataRow.Cells[6].SetCellValue(DT.Rows[j]["良品总数"].ToString());
dataRow.CreateCell(7);
dataRow.Cells[7].SetCellValue(DT.Rows[j]["不良总数"].ToString());
dataRow.CreateCell(8);
dataRow.Cells[8].SetCellValue(DT.Rows[j]["不良率"].ToString());
dataRow.CreateCell(9);
dataRow.Cells[9].SetCellValue(DT.Rows[j]["质量缺陷"].ToString());
dataRow.CreateCell(10);
dataRow.Cells[10].SetCellValue(DT.Rows[j]["非质量缺陷"].ToString());
dataRow.CreateCell(11);
dataRow.Cells[11].SetCellValue(DT.Rows[j]["其他不良"].ToString());
dataRow.CreateCell(12);
dataRow.Cells[12].SetCellValue(DT.Rows[j]["侧面不良"].ToString());
dataRow.CreateCell(13);
dataRow.Cells[13].SetCellValue(DT.Rows[j]["正极不良"].ToString());
dataRow.CreateCell(14);
dataRow.Cells[14].SetCellValue(DT.Rows[j]["负极不良"].ToString());
dataRow.CreateCell(15);
dataRow.Cells[15].SetCellValue(DT.Rows[j]["重合不良"].ToString());
dataRow.CreateCell(16);
dataRow.Cells[16].SetCellValue(DT.Rows[j]["喷码不良"].ToString());
dataRow.CreateCell(17);
dataRow.Cells[17].SetCellValue(DT.Rows[j]["侧面凹坑鼓包、变形"].ToString());
dataRow.CreateCell(18);
dataRow.Cells[18].SetCellValue(DT.Rows[j]["侧面脏污漏液"].ToString());
dataRow.CreateCell(19);
dataRow.Cells[19].SetCellValue(DT.Rows[j]["侧面凸点、划痕、破皮、膜内异物"].ToString());
dataRow.CreateCell(20);
dataRow.Cells[20].SetCellValue(DT.Rows[j]["正极面垫不良多放、漏放"].ToString());
dataRow.CreateCell(21);
dataRow.Cells[21].SetCellValue(DT.Rows[j]["正极套膜不良含热缩不良、破损、褶皱、面垫翘起"].ToString());
dataRow.CreateCell(22);
dataRow.Cells[22].SetCellValue(DT.Rows[j]["正极套膜脏污"].ToString());
dataRow.CreateCell(23);
dataRow.Cells[23].SetCellValue(DT.Rows[j]["盖帽不良含漏液、盖帽脏污氧化生锈,划痕,变形"].ToString());
dataRow.CreateCell(24);
dataRow.Cells[24].SetCellValue(DT.Rows[j]["负极套膜尺寸不良"].ToString());
dataRow.CreateCell(25);
dataRow.Cells[25].SetCellValue(DT.Rows[j]["负极套膜不良含套膜褶皱变形、破损、褶皱"].ToString());
dataRow.CreateCell(26);
dataRow.Cells[26].SetCellValue(DT.Rows[j]["负极套膜脏污"].ToString());
dataRow.CreateCell(27);
dataRow.Cells[27].SetCellValue(DT.Rows[j]["底部不良含漏液、脏污、氧化生锈、划痕、变形"].ToString());
dataRow.CreateCell(28);
dataRow.Cells[28].SetCellValue(DT.Rows[j]["操作员"].ToString());
//for (int i = 0; i <= 2; i++) //循环列,添加样式
//{
// dataRow.Cells[i].CellStyle = TableS9;
//}
}
//设定第一行,第一列的单元格选中
sheet.SetActiveCell(0, 0);
}
catch (Exception ex)
{
//WriteLog(ex.ToString());
}
}
}
}