using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
//using ADODB;
using System.Data.SqlClient;
using System.Data;
using System.Drawing;
using MES_SPC;
//using Microsoft.Office.Core;
public class DirectExcel
{//直接操作Excel
public DirectExcel()
{
//逻辑区域
}
///
/// 质量数据查询
/// 引用页质量数据查询页面QualityData_Query.aspx
///
///
///
///
public static void ExcelTable_QualityData_Query_Direct(ref string sql, ref string fileName, ref int Count,ref int ColCount,ref object[,] ColsArray)
{
//新建一个excel
//string connectionString = ApplicationConfiguration.ERP_ConnectionString;
//Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
//excel.Application.Workbooks.Add(true);
//Microsoft.Office.Interop.Excel.Workbook wb = (Microsoft.Office.Interop.Excel.Workbook)excel.Application.Workbooks[1];
//excel.Visible = false;
//Microsoft.Office.Interop.Excel.Worksheet ws = new Microsoft.Office.Interop.Excel.Worksheet();
//ws = (Microsoft.Office.Interop.Excel.Worksheet)excel.ActiveSheet;
//ws.Name = "Sheet1";//新建的Table名称
//string LastCol = GetLastCellName(ColCount);
////设置头
//Microsoft.Office.Interop.Excel.Range rangeHeader =ws.get_Range("A1", LastCol+"1");
//rangeHeader.Merge(0);
//ws.Cells[1, 1] = "合格质量数据";
////rangeHeader.Font.Name = "黑体";
//rangeHeader.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
////rangeHeader.Borders.LineStyle = 1; //设置单元格边框的粗细
////rangeHeader.EntireColumn.AutoFit(); //自动调整列宽
////序号,订单号,发动机号,工位号,测量位置, 测量项目 ,测量值,测量单位,理论值 ,上限值,下限值,合格标志,生产日期
////第二部设置列头
//Microsoft.Office.Interop.Excel.Range rangeCol =ws.get_Range("A2", LastCol+"2");
////Excel.Range rangeCol = (Excel.Range)ws.get_Range(ws.Cells[2, 1], ws.Cells[2, ColCount]);
//object[,] arycol = (object[,])(rangeCol.Value2);
////arycol = new object[,] { { "序号", "订单号", "发动机号", "工位号", "测量位置", "测量项目", "测量值", "测量单位", "理论值", "上限值", "下限值", "合格标志", "生产日期" } };
//arycol = ColsArray;
////for (int j = 1; j < SourceTable.Columns.Count + 1; j++)
////{
//// arycol[1, j] = SourceTable.Columns[j - 1].ColumnName.ToString();
////}
//rangeCol.Value2 = arycol;
//rangeCol.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
//rangeCol.Borders.LineStyle = 1; //设置单元格边框的粗细
////rangeCol.EntireColumn.AutoFit(); //自动调整列宽
//try
//{
// ADODB.Connection conn = new ADODB.Connection();
// conn.CommandTimeout = 120;
// conn.Open("driver={SQL Server};" + connectionString, "", "", 0);
// ADODB.Recordset rs = new ADODB.Recordset();
// rs.Open(sql, conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly, 0);
// Microsoft.Office.Interop.Excel.Range range = ws.get_Range("A3", Missing.Value);
// //range.CopyFromRecordset(rs, SourceTable.Rows.Count + 3, SourceTable.Columns.Count);//rs, 65535, 65535
// range.CopyFromRecordset(rs, 1000000, 30);//rs, 65535, 65535
// //设置序号
// Microsoft.Office.Interop.Excel.Range Drange = ws.get_Range("A3","A"+(Count+2).ToString());
// Microsoft.Office.Interop.Excel.Range DrangeFirst = ws.get_Range("A3");
// DrangeFirst.Value2 = 1;
// Drange.DataSeries(Missing.Value, Microsoft.Office.Interop.Excel.XlDataSeriesType.xlDataSeriesLinear, Microsoft.Office.Interop.Excel.XlDataSeriesDate.xlDay, 1, Count, false);
// //设置日期格式
// //int index = SourceTable.Columns["生产日期"].Ordinal + 1;
// Microsoft.Office.Interop.Excel.Range rangeDate = ws.get_Range(LastCol + "3", LastCol + (Count + 2).ToString());
// rangeDate.NumberFormatLocal = @"yyyy-mm-dd hh:mm";//日期型格式
// Microsoft.Office.Interop.Excel.Range RangeOfAll = ws.get_Range("A3", LastCol + (Count + 2).ToString());
// RangeOfAll.Borders.LineStyle = 1; //设置单元格边框的粗细
// RangeOfAll.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
// RangeOfAll.EntireColumn.AutoFit(); //自动调整列宽
// //设置不合格的就为红色
// Microsoft.Office.Interop.Excel.FormatCondition cond =
// (Microsoft.Office.Interop.Excel.FormatCondition)RangeOfAll.FormatConditions.Add(Microsoft.Office.Interop.Excel.XlFormatConditionType.xlExpression,
// Missing.Value, "=$L1=0", Missing.Value);
// cond.Interior.PatternColorIndex = Microsoft.Office.Interop.Excel.Constants.xlAutomatic;
// cond.Interior.TintAndShade = 0;
// cond.Interior.Color = ColorTranslator.ToWin32(Color.Red);
// cond.StopIfTrue = false;
//}
//catch (Exception ex)
//{
// string str = ex.Message;
//}
//finally
//{
// wb.Saved = true;
// wb.SaveCopyAs(fileName);//保存
// //excel.SaveWorkspace(fileName);
// //app.Quit();//关闭进程
// wb.Close();
// excel.Quit();
// GC.Collect();
//}
}
///
/// 工件总成质量数据报表
/// 引用页QualityData_Query_2.aspx(质量数据导出excel)
///
///
///
///
public static void ExcelTable_QualityData_Query_xml_Direct(ref string sql, ref string fileName, ref int Count, ref int ColCount, ref object[,] ColsArray)
{
//新建一个excel
string connectionString = ApplicationConfiguration.ERP_ConnectionString;
//Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
//excel.Application.Workbooks.Add(true);
//Microsoft.Office.Interop.Excel.Workbook wb = (Microsoft.Office.Interop.Excel.Workbook)excel.Application.Workbooks[1];
//excel.Visible = false;
//Microsoft.Office.Interop.Excel.Worksheet ws = new Microsoft.Office.Interop.Excel.Worksheet();
//ws = (Microsoft.Office.Interop.Excel.Worksheet)excel.ActiveSheet;
//ws.Name = "Sheet1";//新建的Table名称
//string LastCol = GetLastCellName(ColCount);
////设置头
//Microsoft.Office.Interop.Excel.Range rangeHeader = ws.get_Range("A1", LastCol+"1");
//rangeHeader.Merge(0);
//ws.Cells[1, 1] = "工件总成质量数据报表";
////rangeHeader.Font.Name = "黑体";
//rangeHeader.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
////rangeHeader.Borders.LineStyle = 1; //设置单元格边框的粗细
////rangeHeader.EntireColumn.AutoFit(); //自动调整列宽
////序号,订单号,总成型号,总成流水号,工序号,工序名称,托盘编号,操作者,测量位置,数据1类型,数据1理论值上限,数据1,数据1理论值下限,数据1单位,数据2类型,数据2理论值上限,数据2,数据2理论值下限,数据2单位,工序状况,总合格标志,生产日期
////Orientation = 90以90度进行旋转
////第二部设置列头
//Microsoft.Office.Interop.Excel.Range rangeCol = ws.get_Range("A2", LastCol+"2");
////Excel.Range rangeCol = (Excel.Range)ws.get_Range(ws.Cells[2, 1], ws.Cells[2, ColCount]);
//object[,] arycol = (object[,])(rangeCol.Value2);
////arycol = new object[,]
////{{ GetColumnName_Ver("序号"),
//// GetColumnName_Ver("订单号"),
//// GetColumnName_Ver("总成型号"),
//// GetColumnName_Ver("总成流水号"),
//// GetColumnName_Ver("工序号"),
//// GetColumnName_Ver("工序名称"),
//// GetColumnName_Ver("托盘编号"),
//// GetColumnName_Ver("操作者"),
//// GetColumnName_Ver("测量位置"),
//// GetColumnName_Ver("数据1类型"),
//// GetColumnName_Ver("数据1理论值上限 "),
//// GetColumnName_Ver("数据1"),
//// GetColumnName_Ver("数据1理论值下限 "),
//// GetColumnName_Ver("数据1单位"),
//// GetColumnName_Ver("数据2类型"),
//// GetColumnName_Ver("数据2理论值上限 "),
//// GetColumnName_Ver("数据2"),
//// GetColumnName_Ver("数据2理论值下限 "),
//// GetColumnName_Ver("数据2单位"),
//// GetColumnName_Ver("工序状况"),
//// GetColumnName_Ver("总合格标志"),
//// GetColumnName_Ver("生产日期")
////} };
//arycol = ColsArray;
//rangeCol.Value2 = arycol;
//rangeCol.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
//rangeCol.VerticalAlignment = Microsoft.Office.Interop.Excel.Constants.xlTop;
//rangeCol.Borders.LineStyle = 1; //设置单元格边框的粗细
////rangeCol.EntireColumn.AutoFit(); //自动调整列宽
////rangeCol.Orientation = 90;
//try
//{
// ADODB.Connection conn = new ADODB.Connection();
// conn.CommandTimeout = 120;
// conn.Open("driver={SQL Server};" + connectionString, "", "", 0);
// ADODB.Recordset rs = new ADODB.Recordset();
// rs.Open(sql, conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly, 0);
// Microsoft.Office.Interop.Excel.Range range = ws.get_Range("A3", Missing.Value);
// //range.CopyFromRecordset(rs, SourceTable.Rows.Count + 3, SourceTable.Columns.Count);//rs, 65535, 65535
// range.CopyFromRecordset(rs, 1000000, 30);//rs, 65535, 65535
// //设置序号
// Microsoft.Office.Interop.Excel.Range Drange = ws.get_Range("A3", "A" + (Count + 2).ToString());
// Microsoft.Office.Interop.Excel.Range DrangeFirst = ws.get_Range("A3");
// DrangeFirst.Value2 = 1;
// Drange.DataSeries(Missing.Value, Microsoft.Office.Interop.Excel.XlDataSeriesType.xlDataSeriesLinear, Microsoft.Office.Interop.Excel.XlDataSeriesDate.xlDay, 1, Count, false);
// //设置日期格式
// //int index = SourceTable.Columns["生产日期"].Ordinal + 1;
// Microsoft.Office.Interop.Excel.Range rangeDate = ws.get_Range(LastCol+"3", LastCol + (Count + 2).ToString());
// rangeDate.NumberFormatLocal = @"yyyy-mm-dd hh:mm";//日期型格式
// Microsoft.Office.Interop.Excel.Range RangeOfAll = ws.get_Range("A3", LastCol + (Count + 2).ToString());
// RangeOfAll.Borders.LineStyle = 1; //设置单元格边框的粗细
// RangeOfAll.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
// RangeOfAll.EntireColumn.AutoFit(); //自动调整列宽
// //设置工序状况不合格的就为红色
// Microsoft.Office.Interop.Excel.Range RangeOfgongxu = ws.get_Range("T3", "T" + (Count + 2).ToString());
// Microsoft.Office.Interop.Excel.FormatCondition cond =
// (Microsoft.Office.Interop.Excel.FormatCondition)RangeOfgongxu.FormatConditions.Add(Microsoft.Office.Interop.Excel.XlFormatConditionType.xlExpression,
// Missing.Value, @"=$T1=""NOK""", Missing.Value);
// cond.Interior.PatternColorIndex = Microsoft.Office.Interop.Excel.Constants.xlAutomatic;
// cond.Interior.TintAndShade = 0;
// cond.Interior.Color = ColorTranslator.ToWin32(Color.Red);
// cond.StopIfTrue = false;
// //设置工序状况不合格的就为红色
// Microsoft.Office.Interop.Excel.Range RangeOfhege = ws.get_Range("U3", "U" + (Count + 2).ToString());
// Microsoft.Office.Interop.Excel.FormatCondition cond2 =
// (Microsoft.Office.Interop.Excel.FormatCondition)RangeOfhege.FormatConditions.Add(Microsoft.Office.Interop.Excel.XlFormatConditionType.xlExpression,
// Missing.Value, @"=$U1=""NOK""", Missing.Value);
// cond2.Interior.PatternColorIndex = Microsoft.Office.Interop.Excel.Constants.xlAutomatic;
// cond2.Interior.TintAndShade = 0;
// cond2.Interior.Color = ColorTranslator.ToWin32(Color.Red);
// cond2.StopIfTrue = false;
//}
//catch (Exception ex)
//{
// string str = ex.Message;
//}
//finally
//{
// wb.Saved = true;
// wb.SaveCopyAs(fileName);//保存
// //excel.SaveWorkspace(fileName);
// //app.Quit();//关闭进程
// wb.Close();
// excel.Quit();
// GC.Collect();
//}
}
///
/// 不合格质量数据报表
///
///
///
///
public static void ExcelTable_QualityData_Query2(ref string sql, ref string fileName, ref int Count, ref int ColCount, ref object[,] ColsArray)
{
//新建一个excel
string connectionString = ApplicationConfiguration.ERP_ConnectionString;
//Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
//excel.Application.Workbooks.Add(true);
//Microsoft.Office.Interop.Excel.Workbook wb = (Microsoft.Office.Interop.Excel.Workbook)excel.Application.Workbooks[1];
//excel.Visible = false;
//Microsoft.Office.Interop.Excel.Worksheet ws = new Microsoft.Office.Interop.Excel.Worksheet();
//ws = (Microsoft.Office.Interop.Excel.Worksheet)excel.ActiveSheet;
//ws.Name = "Sheet1";//新建的Table名称
//string LastCol = GetLastCellName(ColCount);
////插入图片
//float PicLeft,PicTop;
//string imgPath = System.Web.HttpContext.Current.Server.MapPath("~/images/report_icon.jpg");
////转换成字节,再由字节转换成图片
////byte[] bytesArr = PicToByteArr(imgPath);
////System.Drawing.Image bmp = ReturnPhoto(bytesArr);//图片数据
////string imgPath=System.Web.HttpContext.Current.Application.
//Microsoft.Office.Interop.Excel.Range rangePic = ws.get_Range("A1", LastCol+"1");
//rangePic.Merge(0);
//PicLeft = Convert.ToSingle(rangePic.Left)+2;
//PicTop = Convert.ToSingle(rangePic.Top)+ 1;
//ws.Shapes.AddPicture(imgPath,Microsoft.Office.Core.MsoTriState.msoFalse,
//Microsoft.Office.Core.MsoTriState.msoTrue,
//PicLeft,PicTop,(float)305,(float)12);
////设置头
//Microsoft.Office.Interop.Excel.Range rangeHeader = ws.get_Range("A2", LastCol+"2");
//rangeHeader.Merge(0);
//ws.Cells[2, 1] = "不合格质量数据报表";
////rangeHeader.Font.Name = "黑体";
//rangeHeader.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
////rangeHeader.Borders.LineStyle = 1; //设置单元格边框的粗细
////rangeHeader.EntireColumn.AutoFit(); //自动调整列宽
////序号,订单号,总成型号,总成流水号,工序号,工序名称,托盘编号,操作者,测量位置,数据1类型,数据1理论值上限,数据1,数据1理论值下限,数据1单位,数据2类型,数据2理论值上限,数据2,数据2理论值下限,数据2单位,工序状况,总合格标志,生产日期
////Orientation = 90以90度进行旋转
////第二部设置列头
//Microsoft.Office.Interop.Excel.Range rangeCol = ws.get_Range("A3", LastCol+"3");
////Excel.Range rangeCol = (Excel.Range)ws.get_Range(ws.Cells[2, 1], ws.Cells[2, ColCount]);
//object[,] arycol = (object[,])(rangeCol.Value2);
////arycol = new object[,]
////{{ GetColumnName_Ver("序号"),
//// GetColumnName_Ver("订单号"),
//// GetColumnName_Ver("总成型号"),
//// GetColumnName_Ver("总成流水号"),
//// GetColumnName_Ver("工序号"),
//// GetColumnName_Ver("工序名称"),
//// GetColumnName_Ver("测量位置"),
//// GetColumnName_Ver("数据类型"),
//// GetColumnName_Ver("数据理论值上限"),
//// GetColumnName_Ver("数据"),
//// GetColumnName_Ver("数据理论值下限 "),
//// GetColumnName_Ver("备注"),
////} };
//arycol = ColsArray;
//rangeCol.Value2 = arycol;
//rangeCol.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
//rangeCol.VerticalAlignment = Microsoft.Office.Interop.Excel.Constants.xlTop;
//rangeCol.Borders.LineStyle = 1; //设置单元格边框的粗细
////rangeCol.EntireColumn.AutoFit(); //自动调整列宽
////rangeCol.Orientation = 90;
//try
//{
// ADODB.Connection conn = new ADODB.Connection();
// conn.Open("driver={SQL Server};" + connectionString, "", "", 0);
// ADODB.Recordset rs = new ADODB.Recordset();
// rs.Open(sql, conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly, 0);
// Microsoft.Office.Interop.Excel.Range range = ws.get_Range("A4", Missing.Value);
// //range.CopyFromRecordset(rs, SourceTable.Rows.Count + 3, SourceTable.Columns.Count);//rs, 65535, 65535
// range.CopyFromRecordset(rs, 1000000, 30);//rs, 65535, 65535
// //设置序号
// Microsoft.Office.Interop.Excel.Range Drange = ws.get_Range("A4", "A" + (Count + 3).ToString());
// Microsoft.Office.Interop.Excel.Range DrangeFirst = ws.get_Range("A4");
// DrangeFirst.Value2 = 1;
// Drange.DataSeries(Missing.Value, Microsoft.Office.Interop.Excel.XlDataSeriesType.xlDataSeriesLinear, Microsoft.Office.Interop.Excel.XlDataSeriesDate.xlDay, 1, Count, false);
// Microsoft.Office.Interop.Excel.Range RangeOfAll = ws.get_Range("A4", LastCol + (Count + 3).ToString());
// RangeOfAll.Borders.LineStyle = 1; //设置单元格边框的粗细
// RangeOfAll.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
// RangeOfAll.EntireColumn.AutoFit(); //自动调整列宽
// //设置数据列为红色
// Microsoft.Office.Interop.Excel.Range RangeOfshuju = ws.get_Range("J4", "J" + (Count + 3).ToString());
// RangeOfshuju.Cells.Interior.Color = Color.Red;
//}
//catch (Exception ex)
//{
// string str = ex.Message;
//}
//finally
//{
// wb.Saved = true;
// wb.SaveCopyAs(fileName);//保存
// //excel.SaveWorkspace(fileName);
// //app.Quit();//关闭进程
// wb.Close();
// excel.Quit();
// GC.Collect();
//}
}
///
/// 合格质量数据
/// 变速器称重
///
///
///
///
public static void ExcelTable_QualityData_Query_kg(ref string sql, ref string fileName, ref int Count, ref int ColCount, ref object[,] ColsArray)
{
//新建一个excel
string connectionString = ApplicationConfiguration.ERP_ConnectionString;
//Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
//excel.Application.Workbooks.Add(true);
//Microsoft.Office.Interop.Excel.Workbook wb = (Microsoft.Office.Interop.Excel.Workbook)excel.Application.Workbooks[1];
//excel.Visible = false;
//Microsoft.Office.Interop.Excel.Worksheet ws = new Microsoft.Office.Interop.Excel.Worksheet();
//ws = (Microsoft.Office.Interop.Excel.Worksheet)excel.ActiveSheet;
//ws.Name = "Sheet1";//新建的Table名称
//string LastCol = GetLastCellName(ColCount);
////设置头
//Microsoft.Office.Interop.Excel.Range rangeHeader = ws.get_Range("A1", LastCol+"1");
//rangeHeader.Merge(0);
//ws.Cells[1, 1] = "合格质量数据";
////rangeHeader.Font.Name = "黑体";
//rangeHeader.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
////rangeHeader.Borders.LineStyle = 1; //设置单元格边框的粗细
////rangeHeader.EntireColumn.AutoFit(); //自动调整列宽
////序号,发动机号,工件重量,抽油后重量,重量差,允许重量差,合格标志,操作时间
////Orientation = 90以90度进行旋转
////第二部设置列头
//Microsoft.Office.Interop.Excel.Range rangeCol = ws.get_Range("A2", LastCol+"2");
////Excel.Range rangeCol = (Excel.Range)ws.get_Range(ws.Cells[2, 1], ws.Cells[2, ColCount]);
//object[,] arycol = (object[,])(rangeCol.Value2);
////arycol = new object[,] { { "序号", "发动机号", "工件重量(kg)", "抽油后重量(kg)", "重量差(kg)", "允许重量差(kg)", "合格标志", "操作时间" } };
//arycol = ColsArray;
//rangeCol.Value2 = arycol;
//rangeCol.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
//rangeCol.VerticalAlignment = Microsoft.Office.Interop.Excel.Constants.xlTop;
//rangeCol.Borders.LineStyle = 1; //设置单元格边框的粗细
////rangeCol.EntireColumn.AutoFit(); //自动调整列宽
////rangeCol.Orientation = 90;
//try
//{
// ADODB.Connection conn = new ADODB.Connection();
// conn.Open("driver={SQL Server};" + connectionString, "", "", 0);
// ADODB.Recordset rs = new ADODB.Recordset();
// rs.Open(sql, conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly, 0);
// Microsoft.Office.Interop.Excel.Range range = ws.get_Range("A3", Missing.Value);
// //range.CopyFromRecordset(rs, SourceTable.Rows.Count + 3, SourceTable.Columns.Count);//rs, 65535, 65535
// range.CopyFromRecordset(rs, 1000000, 30);//rs, 65535, 65535
// //设置序号
// Microsoft.Office.Interop.Excel.Range Drange = ws.get_Range("A3", "A" + (Count + 2).ToString());
// Microsoft.Office.Interop.Excel.Range DrangeFirst = ws.get_Range("A3");
// DrangeFirst.Value2 = 1;
// Drange.DataSeries(Missing.Value, Microsoft.Office.Interop.Excel.XlDataSeriesType.xlDataSeriesLinear, Microsoft.Office.Interop.Excel.XlDataSeriesDate.xlDay, 1, Count, false);
// //设置日期格式
// //int index = SourceTable.Columns["生产日期"].Ordinal + 1;
// Microsoft.Office.Interop.Excel.Range rangeDate = ws.get_Range("J3", "J" + (Count + 2).ToString());
// rangeDate.NumberFormatLocal = @"yyyy-mm-dd hh:mm";//日期型格式
// Microsoft.Office.Interop.Excel.Range RangeOfAll = ws.get_Range("A3", LastCol + (Count + 2).ToString());
// RangeOfAll.Borders.LineStyle = 1; //设置单元格边框的粗细
// RangeOfAll.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
// RangeOfAll.EntireColumn.AutoFit(); //自动调整列宽
// //设置工序状况不合格的就为红色
// Microsoft.Office.Interop.Excel.FormatCondition cond =
// (Microsoft.Office.Interop.Excel.FormatCondition)RangeOfAll.FormatConditions.Add(Microsoft.Office.Interop.Excel.XlFormatConditionType.xlExpression,
// Missing.Value, "=$I1=0", Missing.Value);
// cond.Interior.PatternColorIndex = Microsoft.Office.Interop.Excel.Constants.xlAutomatic;
// cond.Interior.TintAndShade = 0;
// cond.Interior.Color = ColorTranslator.ToWin32(Color.Red);
// cond.StopIfTrue = false;
//}
//catch (Exception ex)
//{
// string str = ex.Message;
//}
//finally
//{
// wb.Saved = true;
// wb.SaveCopyAs(fileName);//保存
// //excel.SaveWorkspace(fileName);
// //app.Quit();//关闭进程
// wb.Close();
// excel.Quit();
// GC.Collect();
//}
}
///
/// 人工合格放行
///
///
///
///
public static void ExcelTable_QualityData_Query_okgo(ref string sql, ref string fileName, ref int Count, ref int ColCount, ref object[,] ColsArray)
{
//新建一个excel
//string connectionString = ApplicationConfiguration.ERP_ConnectionString;
//Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
//excel.Application.Workbooks.Add(true);
//Microsoft.Office.Interop.Excel.Workbook wb = (Microsoft.Office.Interop.Excel.Workbook)excel.Application.Workbooks[1];
//excel.Visible = false;
//Microsoft.Office.Interop.Excel.Worksheet ws = new Microsoft.Office.Interop.Excel.Worksheet();
//ws = (Microsoft.Office.Interop.Excel.Worksheet)excel.ActiveSheet;
//ws.Name = "Sheet1";//新建的Table名称
//string LastCol = GetLastCellName(ColCount);
////设置头
//Microsoft.Office.Interop.Excel.Range rangeHeader = ws.get_Range("A1", LastCol + "1");
//rangeHeader.Merge(0);
//ws.Cells[1, 1] = "人工合格放行";
////rangeHeader.Font.Name = "黑体";
//rangeHeader.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
////rangeHeader.Borders.LineStyle = 1; //设置单元格边框的粗细
////rangeHeader.EntireColumn.AutoFit(); //自动调整列宽
////序号,发动机号,工件重量,抽油后重量,重量差,允许重量差,合格标志,操作时间
////Orientation = 90以90度进行旋转
////第二部设置列头
//Microsoft.Office.Interop.Excel.Range rangeCol = ws.get_Range("A2", LastCol + "2");
////Excel.Range rangeCol = (Excel.Range)ws.get_Range(ws.Cells[2, 1], ws.Cells[2, ColCount]);
//object[,] arycol = (object[,])(rangeCol.Value2);
////arycol = new object[,] { { "序号", "发动机号", "工件重量(kg)", "抽油后重量(kg)", "重量差(kg)", "允许重量差(kg)", "合格标志", "操作时间" } };
//arycol = ColsArray;
//rangeCol.Value2 = arycol;
//rangeCol.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
//rangeCol.VerticalAlignment = Microsoft.Office.Interop.Excel.Constants.xlTop;
//rangeCol.Borders.LineStyle = 1; //设置单元格边框的粗细
////rangeCol.EntireColumn.AutoFit(); //自动调整列宽
////rangeCol.Orientation = 90;
//try
//{
// ADODB.Connection conn = new ADODB.Connection();
// conn.Open("driver={SQL Server};" + connectionString, "", "", 0);
// ADODB.Recordset rs = new ADODB.Recordset();
// rs.Open(sql, conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly, 0);
// Microsoft.Office.Interop.Excel.Range range = ws.get_Range("A3", Missing.Value);
// //range.CopyFromRecordset(rs, SourceTable.Rows.Count + 3, SourceTable.Columns.Count);//rs, 65535, 65535
// range.CopyFromRecordset(rs, 1000000, 30);//rs, 65535, 65535
// //设置序号
// Microsoft.Office.Interop.Excel.Range Drange = ws.get_Range("A3", "A" + (Count + 2).ToString());
// Microsoft.Office.Interop.Excel.Range DrangeFirst = ws.get_Range("A3");
// DrangeFirst.Value2 = 1;
// Drange.DataSeries(Missing.Value, Microsoft.Office.Interop.Excel.XlDataSeriesType.xlDataSeriesLinear, Microsoft.Office.Interop.Excel.XlDataSeriesDate.xlDay, 1, Count, false);
// //设置日期格式
// //int index = SourceTable.Columns["生产日期"].Ordinal + 1;
// Microsoft.Office.Interop.Excel.Range rangeDate = ws.get_Range("F3", "F" + (Count + 2).ToString());
// rangeDate.NumberFormatLocal = @"yyyy-mm-dd hh:mm";//日期型格式
// Microsoft.Office.Interop.Excel.Range RangeOfAll = ws.get_Range("A3", LastCol + (Count + 2).ToString());
// RangeOfAll.Borders.LineStyle = 1; //设置单元格边框的粗细
// RangeOfAll.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
// RangeOfAll.EntireColumn.AutoFit(); //自动调整列宽
// //设置工序状况不合格的就为红色
// //Microsoft.Office.Interop.Excel.FormatCondition cond =
// // (Microsoft.Office.Interop.Excel.FormatCondition)RangeOfAll.FormatConditions.Add(Microsoft.Office.Interop.Excel.XlFormatConditionType.xlExpression,
// // Missing.Value, "=$I1=0", Missing.Value);
// //cond.Interior.PatternColorIndex = Microsoft.Office.Interop.Excel.Constants.xlAutomatic;
// //cond.Interior.TintAndShade = 0;
// //cond.Interior.Color = ColorTranslator.ToWin32(Color.Red);
// //cond.StopIfTrue = false;
//}
//catch (Exception ex)
//{
// string str = ex.Message;
//}
//finally
//{
// wb.Saved = true;
// wb.SaveCopyAs(fileName);//保存
// //excel.SaveWorkspace(fileName);
// //app.Quit();//关闭进程
// wb.Close();
// excel.Quit();
// GC.Collect();
//}
}
//ExcelTable
///
/// 物料数据
///
///
///
///
public static void ExcelTable_Materials(ref string sql, ref string fileName, ref int Count, ref int ColCount, ref object[,] ColsArray)
{
//新建一个excel
//string connectionString = ApplicationConfiguration.ERP_ConnectionString;
//Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
//excel.Application.Workbooks.Add(true);
//Microsoft.Office.Interop.Excel.Workbook wb = (Microsoft.Office.Interop.Excel.Workbook)excel.Application.Workbooks[1];
//excel.Visible = false;
//Microsoft.Office.Interop.Excel.Worksheet ws = new Microsoft.Office.Interop.Excel.Worksheet();
//ws = (Microsoft.Office.Interop.Excel.Worksheet)excel.ActiveSheet;
//ws.Name = "Sheet1";//新建的Table名称
//string LastCol = GetLastCellName(ColCount);
////设置头
//Microsoft.Office.Interop.Excel.Range rangeHeader = ws.get_Range("A1", LastCol+"1");
//rangeHeader.Merge(0);
//ws.Cells[1, 1] = "物料数据";
//rangeHeader.Font.Name = "黑体";
//rangeHeader.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
////rangeHeader.Borders.LineStyle = 1; //设置单元格边框的粗细
////rangeHeader.EntireColumn.AutoFit(); //自动调整列宽
////第二部设置列头
//Microsoft.Office.Interop.Excel.Range rangeCol = ws.get_Range("A2", LastCol+"2");
////Excel.Range rangeCol = (Excel.Range)ws.get_Range(ws.Cells[2, 1], ws.Cells[2, ColCount]);
//object[,] arycol = (object[,])(rangeCol.Value2);
////arycol = new object[,] { { "序号", "订单号", "发动机型号", "总成流水号", "工序号", "工序名称", "零件数量", "零件名称", "零件图号", "零件数量", "物料号", "生产厂家" } };
//arycol = ColsArray;
//rangeCol.Value2 = arycol;
//rangeCol.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
//rangeCol.VerticalAlignment = Microsoft.Office.Interop.Excel.Constants.xlTop;
//rangeCol.Borders.LineStyle = 1; //设置单元格边框的粗细
////rangeCol.EntireColumn.AutoFit(); //自动调整列宽
////rangeCol.Orientation = 90;
//try
//{
// ADODB.Connection conn = new ADODB.Connection();
// conn.Open("driver={SQL Server};" + connectionString, "", "", 0);
// ADODB.Recordset rs = new ADODB.Recordset();
// rs.Open(sql, conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly, 0);
// Microsoft.Office.Interop.Excel.Range range = ws.get_Range("A3", Missing.Value);
// //range.CopyFromRecordset(rs, SourceTable.Rows.Count + 3, SourceTable.Columns.Count);//rs, 65535, 65535
// range.CopyFromRecordset(rs, 1000000, 30);//rs, 65535, 65535
// //设置序号
// Microsoft.Office.Interop.Excel.Range Drange = ws.get_Range("A3", "A" + (Count + 2).ToString());
// Microsoft.Office.Interop.Excel.Range DrangeFirst = ws.get_Range("A3");
// DrangeFirst.Value2 = 1;
// Drange.DataSeries(Missing.Value, Microsoft.Office.Interop.Excel.XlDataSeriesType.xlDataSeriesLinear, Microsoft.Office.Interop.Excel.XlDataSeriesDate.xlDay, 1, Count, false);
// ////设置日期格式
// ////int index = SourceTable.Columns["生产日期"].Ordinal + 1;
// //Microsoft.Office.Interop.Excel.Range rangeDate = ws.get_Range("H3", "H" + (Count + 2).ToString());
// //rangeDate.NumberFormatLocal = @"yyyy-mm-dd hh:mm";//日期型格式
// Microsoft.Office.Interop.Excel.Range RangeOfAll = ws.get_Range("A3", LastCol + (Count + 2).ToString());
// RangeOfAll.Borders.LineStyle = 1; //设置单元格边框的粗细
// RangeOfAll.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;
// RangeOfAll.EntireColumn.AutoFit(); //自动调整列宽
//}
//catch (Exception ex)
//{
// string str = ex.Message;
//}
//finally
//{
// wb.Saved = true;
// wb.SaveCopyAs(fileName);//保存
// //excel.SaveWorkspace(fileName);
// //app.Quit();//关闭进程
// wb.Close();
// excel.Quit();
// GC.Collect();
//}
}
///
/// 字段名称各个字符中间增加回车,以保证文本竖着书写。
///
///
///
private static string GetColumnName_Ver(string columnName)
{
string columnName_tr;
columnName_tr = "";
for (int i = 0; i < columnName.Length; i++)
{
columnName_tr = columnName_tr + columnName[i] + Environment.NewLine;
}
return columnName_tr;
}
///
/// 将图片转换为字节数组
///
/// 图片的路径
/// 字节数组
public static byte[] PicToByteArr(string path)
{
System.IO.FileStream fs = new System.IO.FileStream(path,System.IO.FileMode.Open);//将图片写入流中。
int filelength = 0;
filelength = (int)fs.Length; //获得文件长度
Byte[] byteArr = new Byte[filelength]; //建树一个字节数组
fs.Read(byteArr,0,filelength); //按字节俭读取
fs.Close();
return byteArr;
}
///
/// 参数是byte返回图片
///
/// 字节数组
/// 图片
public static System.Drawing.Image ReturnPhoto(byte[] byteArr)
{
System.IO.MemoryStream ms = new System.IO.MemoryStream(byteArr);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
ms.Close();
return img;
}
///
/// 根据列和行号得到最终
///
///
///
///
public static string GetLastCellName(int ColCount)
{
string LastCellName = String.Empty;
switch (ColCount)
{
case 1:
LastCellName = "A";
break;
case 2:
LastCellName = "B";
break;
case 3:
LastCellName = "C";
break;
case 4:
LastCellName = "D";
break;
case 5:
LastCellName = "E";
break;
case 6:
LastCellName = "F";
break;
case 7:
LastCellName = "G";
break;
case 8:
LastCellName = "H";
break;
case 9:
LastCellName = "I";
break;
case 10:
LastCellName = "J";
break;
case 11:
LastCellName = "K";
break;
case 12:
LastCellName = "L";
break;
case 13:
LastCellName = "M";
break;
case 14:
LastCellName = "N";
break;
case 15:
LastCellName = "O";
break;
case 16:
LastCellName = "P";
break;
case 17:
LastCellName = "Q";
break;
case 18:
LastCellName = "R";
break;
case 19:
LastCellName = "S";
break;
case 20:
LastCellName = "T";
break;
case 21:
LastCellName = "U";
break;
case 22:
LastCellName = "V";
break;
case 23:
LastCellName = "W";
break;
case 24:
LastCellName = "X";
break;
case 25:
LastCellName = "Y";
break;
case 26:
LastCellName = "Z";
break;
default: break;
}
return LastCellName;
}
}