using CefSharp.DevTools.Debugger; using DevExpress.Spreadsheet; using DevExpress.Utils.DirectXPaint; using DevExpress.XtraEditors; using DevExpress.XtraLayout.Customization; using Gs.DevApp.ToolBox; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; using System.Configuration; using System.Data; using System.Data.SqlTypes; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Gs.DevApp.UserControl { public partial class CopyXls : DevExpress.XtraEditors.XtraForm { private string orderType; private string orderGuid; private string orgId; private static readonly string filePath = AppContext.BaseDirectory + "xlsCopy.xls"; public CopyXls(string _orgId, string _orderGuid, string _orderType) { InitializeComponent(); this.orderType = _orderType; this.orderGuid = _orderGuid; this.orgId = _orgId; this.spreadsheetControl1.DocumentLoaded += new EventHandler(spreadsheetControl1_DocumentLoaded); if (!string.IsNullOrEmpty(filePath)) { if (File.Exists(filePath)) { IWorkbook workbook = spreadsheetControl1.Document; workbook.LoadDocument(filePath); switch (this.orderType) { case "其它入库": SetCellText(spreadsheetControl1.ActiveWorksheet, "A1", "物料编号", true); SetCellText(spreadsheetControl1.ActiveWorksheet, "B1", "申请数量", true); SetCellText(spreadsheetControl1.ActiveWorksheet, "C1", "申请备注", true); SetCellText(spreadsheetControl1.ActiveWorksheet, "D1", "不良类型", true); break; case "物料调拨": SetCellText(spreadsheetControl1.ActiveWorksheet, "A1", "物料编号", true); SetCellText(spreadsheetControl1.ActiveWorksheet, "B1", "申请数量", true); SetCellText(spreadsheetControl1.ActiveWorksheet, "C1", "申请备注", true); break; } } else { Gs.DevApp.ToolBox.MsgHelper.ShowError("找不到xlsCopy.xls文件,请联系管理员!"); } } } /// /// 文档变化后,实现对新文件名称的显示 /// void spreadsheetControl1_DocumentLoaded(object sender, EventArgs e) { string fileName = Path.GetFileName(this.spreadsheetControl1.Document.Path); if (String.IsNullOrEmpty(fileName)) { Text = "请选择文件"; } else { Text = "正在快捷录入到【" + this.orderType.ToString() + "】,组织ID为【" + this.orgId.ToString() + "】"; } } /// /// 保存 /// /// /// private void btnSave_Click(object sender, EventArgs e) { int rowsCount = spreadsheetControl1.ActiveWorksheet.GetUsedRange().RowCount; spreadsheetControl1.ActiveWorksheet.MoveToEnd(); if (rowsCount < 2) { MsgHelper.ShowError("复制失败:表格不能为空!"); return; } if (!MsgHelper.AskQuestion("共有【" + (rowsCount - 1).ToString() + "】条数据,确定复制吗?")) return; var list = new List(); switch (this.orderType) { case "其它入库": #region MyRegion { for (int row = 2; row <= rowsCount; row++) { string itemNo = spreadsheetControl1.ActiveWorksheet.Cells["A" + row.ToString()].Value.ToString().Trim(); string sl = spreadsheetControl1.ActiveWorksheet.Cells["B" + row.ToString()].Value.ToString().Trim(); string bz = spreadsheetControl1.ActiveWorksheet.Cells["C" + row.ToString()].Value.ToString().Trim(); string bllx = spreadsheetControl1.ActiveWorksheet.Cells["D" + row.ToString()].Value.ToString().Trim(); var _obj = new { itemNo = itemNo, orgId = this.orgId, }; try { var strJson = UtilityHelper.HttpPost("", "MesItemsManager/GetModelByOrg", JsonConvert.SerializeObject(_obj)); var _rtn = UtilityHelper.ReturnToDynamic(strJson); if (_rtn.rtnCode > 0) { var dy = _rtn.rtnData; list.Add(new { itemNo = itemNo, sl = sl, bz = bz, bllx = bllx, itemName = dy.itemName, itemModel = dy.itemModel, dwName = dy.kfName, itemId = dy.itemId }); } else { MsgHelper.ShowError("复制失败:【" + itemNo + "】可能不存在,请检查后重试!"); return; } } catch (Exception ex) { MsgHelper.ShowError("复制失败:【" + itemNo + "】发生错误,请检查后重试!" + ex.Message); return; } } } #endregion break; case "物料调拨": #region MyRegion { for (int row = 2; row <= rowsCount; row++) { string itemNo = spreadsheetControl1.ActiveWorksheet.Cells["A" + row.ToString()].Value.ToString().Trim(); string sl = spreadsheetControl1.ActiveWorksheet.Cells["B" + row.ToString()].Value.ToString().Trim(); string bz = spreadsheetControl1.ActiveWorksheet.Cells["C" + row.ToString()].Value.ToString().Trim(); var _obj = new { itemNo = itemNo, orgId = this.orgId, }; try { var strJson = UtilityHelper.HttpPost("", "MesItemsManager/GetModelByOrg", JsonConvert.SerializeObject(_obj)); var _rtn = UtilityHelper.ReturnToDynamic(strJson); if (_rtn.rtnCode > 0) { var dy = _rtn.rtnData; list.Add(new { itemNo = itemNo, sl = sl, bz = bz, itemName = dy.itemName, itemModel = dy.itemModel, dwName = dy.kfName, itemId = dy.itemId }); } else { MsgHelper.ShowError("复制失败:【" + itemNo + "】可能不存在,请检查后重试!"); return; } } catch (Exception ex) { MsgHelper.ShowError("复制失败:【" + itemNo + "】发生错误,请检查后重试!" + ex.Message); return; } } } #endregion break; } UpdateParent?.Invoke(this, new UpdateParentEventArgs { DynamicList = list }); Close(); } /// /// 从数据库里读取到Excel /// /// /// 位置格式如A1 B2 /// 值 /// 是否加粗 private void SetCellText(Worksheet workSheet, string coordinates, string coordValue, bool isBold) { workSheet.Cells[coordinates].Value = coordValue; workSheet.Cells[coordinates].Style.Font.Bold = isBold; } /// /// 选择后的回调事件 /// public event EventHandler UpdateParent; } }