/*********************** * 说明:Excel插件 * 创建人:龚宇超 * 创建日期:2018-05-10 * 修改人: * 修改日期: * 修改备注: * 版本:1.0.0.0 ***********************/ using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using Lskj.Util; using Lskj.Data; using System.IO; using Lskj.Model; using DevExpress.XtraSpreadsheet; using DevExpress.XtraSpreadsheet.UI; using Lskj.Business.Impl; namespace Lskj.Control { public partial class ExcelControlEx : UserControl { /// /// 调用动态链接库默认传递参数 /// public DynamicModel syModel { get; private set; } /// /// 当前操作地址 /// public string CurrentPath = string.Empty; /// /// 添加按钮是否可用 /// [Description("添加按钮是否可用")] public bool AddEnabled { get { return this.btnAdd.Enabled; } set { this.btnAdd.Enabled = value; } } /// /// 删除按钮是否可用 /// [Description("删除按钮是否可用")] public bool DeleteEnabled { get { return this.btnDel.Enabled; } set { this.btnDel.Enabled = value; } } /// /// 打印按钮是否可用 /// [Description("打印按钮是否可用")] public bool PrintEnabled { get { return this.btnPrint.Enabled; } set { this.btnPrint.Enabled = value; } } /// /// 保存按钮是否可用 /// [Description("保存按钮是否可用")] public bool SaveEnabled { get { return this.btnSave.Enabled; } set { this.btnSave.Enabled = value; } } /// /// 保存回调 /// public event EventHandler SaveCallBack; /// /// 电子表格对象 /// public SpreadsheetBarController SpreadSheetBarObj { get { return this.spreadsheetBarController1; } } public ExcelControlEx() { InitializeComponent(); } #region 公共函数相关 /// /// 说明:创建初始文件 /// 创建人:龚宇超 /// 创建日期:2018-05-08 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public void CreateFile() { DirectoryInfo dir = new DirectoryInfo(PubUtil.MenuExcelPath); //创建新文件 foreach (FileInfo f in dir.GetFiles("*.xls")) { f.Delete(); } //创建文件夹 CurrentPath = PubUtil.MenuExcelPath + Guid.NewGuid() + ".xls"; this.spreadsheetControl1.SaveDocument(CurrentPath); this.spreadsheetControl1.LoadDocument(CurrentPath); if (syModel!=null&&syModel.HasReadPrivilege()) { AddEnabled =DeleteEnabled = PrintEnabled = SaveEnabled = false; } } /// /// 说明:加载文件流 /// 创建人:龚宇超 /// 创建日期:2018-05-08 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// 流内容 public void LoadFileSteam(byte[] fileContent) { CurrentPath = PubUtil.MenuExcelPath + Guid.NewGuid() + ".xls"; using (FileStream myfs = new FileStream(CurrentPath, FileMode.OpenOrCreate, FileAccess.Write)) { using (BinaryWriter bw = new BinaryWriter(myfs)) { //找到流数据 byte[] data = fileContent; int ArraySize = data.GetUpperBound(0); myfs.Write(data, 0, ArraySize); this.spreadsheetControl1.LoadDocument(CurrentPath); } } } /// /// 说明: /// 创建人:龚宇超 /// 创建日期:2018-05-10 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// public void OnSave() { this.spreadsheetControl1.SaveDocument(CurrentPath); if (SaveCallBack != null) SaveCallBack(null, null); } #endregion #region 事件相关 /// /// 说明:打开 /// 创建人:龚宇超 /// 创建日期:2018-05-08 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// protected void btnAdd_Click(object sender, EventArgs e) { try { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); openFileDialog.Filter = "(*.xls,*.xlsx)|*.xls;*.xlsx"; openFileDialog.RestoreDirectory = true; openFileDialog.FilterIndex = 1; if (openFileDialog.ShowDialog() == DialogResult.OK) { var fName = openFileDialog.FileName; this.spreadsheetControl1.LoadDocument(fName); } } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show("打开失败:" + Message); } } /// /// 说明:删除 /// 创建人:龚宇超 /// 创建日期:2018-05-08 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// protected void btnDel_Click(object sender, EventArgs e) { try { this.spreadsheetBarController1.Control.CreateNewDocument(); } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show("删除失败:" + Message); } } /// /// 说明:保存 /// 创建人:龚宇超 /// 创建日期:2018-05-08 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// protected void btnSave_Click(object sender, EventArgs e) { try { this.OnSave(); } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show("保存失败:" + Message); } } /// /// 说明:打印 /// 创建人:龚宇超 /// 创建日期:2018-05-08 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// protected void btnPrint_Click(object sender, EventArgs e) { try { this.spreadsheetControl1.ShowPrintPreview(); } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show("打印失败:" + Message); } } #endregion } }