您的位置:首页 > 编程语言 > ASP

FileUpload上传Excel文件,Aspose导入数据至数据库(web)

2016-07-12 16:09 811 查看
第一步:引用:Aspose.Cells.dll

第二步:创建类文件,AsposeExcel.cs

using Aspose.Cells;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;

namespace MaiGanSys.Backend
{
public class AsposeExcel
{
private string outFileName = "";
private string fullFilename = "";
private Workbook book = null;
private Worksheet sheet = null;

#region 导入构造数
public AsposeExcel(string fullfilename)
{
fullFilename = fullfilename;
// book = new Workbook();
//book.Open(tempfilename);
//sheet = book.Worksheets[0];
}
#endregion

#region 导入方法
public DataTable ExcelToDatatalbe()
{
Workbook book = new Workbook();
book.Open(fullFilename);
Worksheet sheet = book.Worksheets[0];
Cells cells = sheet.Cells;
//获取excel中的数据保存到一个datatable中
DataTable dt_Import = cells.ExportDataTableAsString(0, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, false);
// dt_Import.
return dt_Import;
}
#endregion

}
}


第三步:界面:

选择导入文件: <asp:FileUpload ID="FileUpload1" runat="server" />
<rongguang:button id="BtnExport" runat="server"
text="数据导入" cssclass="BtnList" onclick="BtnExport_Click"></rongguang:button>


第四步:后台上传事件:

#region 数据导入
/// <summary>
/// 数据导入
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void BtnExport_Click(object sender, System.EventArgs e)
{
Boolean fileOk = false;
string path = Server.MapPath("~/Upload/");

//判断是否已经选取文件
if (FileUpload1.HasFile)
{
//取得文件的扩展名,并转换成小写
string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
//限定只能上传Excel格式
string[] allowExtension = RongGuang.Extend.VerifyUploadFile.GetSysValueByName("Excel格式").Split('|');
//对上传的文件的类型进行一个个匹对
for (int i = 0; i < allowExtension.Length; i++)
{
if (fileExtension == allowExtension[i])
{
fileOk = true;
break;
}
}
if (fileOk)
{
this.WriteAjaxMessage("layer.alert('要上传的文件类型不对!!', {icon: 5});");
}

//对上传文件的大小进行检测,限定文件最大不超过1M
if (FileUpload1.PostedFile.ContentLength > Convert.ToInt32(RongGuang.Extend.VerifyUploadFile.GetSysValueByName("EXCEL文件大小限制(单位:byte)")))
{
fileOk = false;
}
else
{
fileOk = true;
}
//最后的结果
if (fileOk)
{
try
{
FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
DataTable dtI = new AsposeExcel(path+FileUpload1.FileName).ExcelToDatatalbe();
if (dtI.Rows.Count > 1 && dtI.Columns.Count == 2)
{
//当前登录的用户
Extend.Users User = Session[Extend.Constant.Session_CurrentUser] as Extend.Users;
for (int i = 1; i < dtI.Rows.Count; i++)
{
MisGuidRow ORow = new MisGuidRow("MG_License");
ORow["RowGuid"] = Guid.NewGuid().ToString();
ORow["OperatorUserGuid"] = User.RowGuid;
ORow["OperatorDateTime"] = DateTime.Now.ToString();
ORow["LicenseCode"] = Convert.ToString(dtI.Rows[i][0]);
ORow["MacAddress"] = Convert.ToString(dtI.Rows[i][1]);
ORow["IsBind"] = "0";
ORow.Insert();
}
}
this.RefreshGrid();
this.WriteAjaxMessage("layer.alert('数据导入成功!!', {icon: 6});");
}
catch
{
this.WriteAjaxMessage("layer.alert('上传失败!!', {icon: 5});");
}
}
else
{
this.WriteAjaxMessage("layer.alert('文件类型或者文件大小超出1M或者文件类型不对!!', {icon: 5});");
}
}
}
#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  aspose 导入