Files
lserp_cs_6.0/插件库/Lskj.Control/ExcelControlEx.cs
T
cyf ab56a9bcf7 基线 SVN r240
SVN-Revision: r240
2025-02-06 06:46:06 +00:00

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
}
}