ab56a9bcf7
SVN-Revision: r240
242 lines
8.2 KiB
C#
242 lines
8.2 KiB
C#
/***********************
|
|
* 说明: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
|
|
{
|
|
/// <summary>
|
|
/// 调用动态链接库默认传递参数
|
|
/// </summary>
|
|
public DynamicModel syModel { get; private set; }
|
|
|
|
/// <summary>
|
|
/// 当前操作地址
|
|
/// </summary>
|
|
public string CurrentPath = string.Empty;
|
|
/// <summary>
|
|
/// 添加按钮是否可用
|
|
/// </summary>
|
|
[Description("添加按钮是否可用")]
|
|
public bool AddEnabled { get { return this.btnAdd.Enabled; } set { this.btnAdd.Enabled = value; } }
|
|
/// <summary>
|
|
/// 删除按钮是否可用
|
|
/// </summary>
|
|
[Description("删除按钮是否可用")]
|
|
public bool DeleteEnabled { get { return this.btnDel.Enabled; } set { this.btnDel.Enabled = value; } }
|
|
/// <summary>
|
|
/// 打印按钮是否可用
|
|
/// </summary>
|
|
[Description("打印按钮是否可用")]
|
|
public bool PrintEnabled { get { return this.btnPrint.Enabled; } set { this.btnPrint.Enabled = value; } }
|
|
/// <summary>
|
|
/// 保存按钮是否可用
|
|
/// </summary>
|
|
[Description("保存按钮是否可用")]
|
|
public bool SaveEnabled { get { return this.btnSave.Enabled; } set { this.btnSave.Enabled = value; } }
|
|
/// <summary>
|
|
/// 保存回调
|
|
/// </summary>
|
|
public event EventHandler SaveCallBack;
|
|
/// <summary>
|
|
/// 电子表格对象
|
|
/// </summary>
|
|
public SpreadsheetBarController SpreadSheetBarObj { get { return this.spreadsheetBarController1; } }
|
|
|
|
public ExcelControlEx()
|
|
{
|
|
InitializeComponent();
|
|
|
|
}
|
|
|
|
#region 公共函数相关
|
|
/// <summary>
|
|
/// <para>说明:创建初始文件</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-05-08 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
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;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:加载文件流</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-05-08 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="fileContent">流内容</param>
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-05-10 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
public void OnSave()
|
|
{
|
|
this.spreadsheetControl1.SaveDocument(CurrentPath);
|
|
if (SaveCallBack != null) SaveCallBack(null, null);
|
|
}
|
|
#endregion
|
|
|
|
#region 事件相关
|
|
/// <summary>
|
|
/// <para>说明:打开</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-05-08 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
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);
|
|
|
|
}
|
|
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:删除</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-05-08 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
protected void btnDel_Click(object sender, EventArgs e)
|
|
{
|
|
try {
|
|
this.spreadsheetBarController1.Control.CreateNewDocument();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show("删除失败:" + Message);
|
|
|
|
}
|
|
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:保存</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-05-08 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
protected void btnSave_Click(object sender, EventArgs e)
|
|
{
|
|
try {
|
|
this.OnSave();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show("保存失败:" + Message);
|
|
}
|
|
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:打印</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-05-08 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
protected void btnPrint_Click(object sender, EventArgs e)
|
|
{
|
|
try {
|
|
this.spreadsheetControl1.ShowPrintPreview();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
string Message = ErrorMessage.PromptErrorMessage(ex);
|
|
MessageUtil.Show("打印失败:" + Message);
|
|
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
}
|
|
}
|