上传已经填写好数据的EXCEL
public bool UploadFile(ref string filepath)
{
#region 保存文件...
bool ret = false;
HttpFileCollection files = HttpContext.Current.Request.Files;
if (files.Count > 0)
{
string fileName = Mltm.Common.Helper.RandomHelper.GetSystemID20();
string fileExt = null;
for (int i = 0; i < files.Count; i++)
{
fileExt = Path.GetExtension(files[i].FileName).ToString().ToLower();
try
{
string servicepath = "D:\\ExportData\\";//本地文件路径
if (files[i].ContentLength > 0)
{
if (servicepath.LastIndexOf("/") > 0)
{
saveDir = servicepath.Substring(0, servicepath.LastIndexOf("/"));
}
else if (servicepath.LastIndexOf("\\") > 0)
{
saveDir = servicepath.Substring(0, servicepath.LastIndexOf("\\"));
}
if (!Directory.Exists(saveDir))
Directory.CreateDirectory(saveDir);
filepath = saveDir + "\\" + fileName + fileExt;
files[i].SaveAs(filepath);
succeedCnt += 1;
succeedName += fileName + "|" + files[i].ContentLength + ",";
}
}
catch (Exception exp)
{
failCnt += 1;
failName += fileName + ",";
System.Diagnostics.EventLog.WriteEntry("PictureUp", exp.ToString(), System.Diagnostics.EventLogEntryType.Error);
}
}
}
if (succeedCnt > 0)
{
ret = true;
}
return ret;
#endregion
}
#region 从Excel获得数据
/// <summary>
/// 从Excel获得数据
/// </summary>
/// <param name="strExcelFileName">文件名</param>
/// <param name="strSheetName">表名</param>
/// <returns></returns>
private System.Data.DataTable ImportExcel(string strExcelFileName, string strSheetName)
{
//Excel连接
//string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strExcelFileName + ";" + "Extended Properties=Excel 8.0;";
string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strExcelFileName + ";Extended Properties=\"Excel 12.0;HDR=YES\"";
string strExcel = string.Format("select * from [{0}$]", strSheetName);
System.Data.DataSet ds = new System.Data.DataSet();
using (OleDbConnection conn = new OleDbConnection(strConn))
{
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
//System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
adapter.Fill(ds, strSheetName);
conn.Close();
}
return ds.Tables[0];
}
#endregion
#region 保存数据
private void SaveData(System.Data.DataTable dt)
{
if (InsertArr(dt))//此添加方法自己写
//数据导入成功!
else
//数据导入失败!
}
#endregion
#region 操作
protected void btnAdd_Click(object sender, EventArgs e)
{
try
{
string strfilepath = this.importData.Value;
if (UploadFile(ref strfilepath))
{
System.Data.DataTable dt = ImportExcel(strfilepath, "Sheet1");
SaveData(dt);
}
else
{
lblmsg.Text = "请选择需要导入的文件!";
}
}
catch (System.Exception ex)
{
}
}
#endregion