/***********************
* 说明: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
}
}