//单击:下载模板.
protected void lbtnUploadTemplate_Click(object sender, EventArgs e)
{
System.IO.FileInfo file = new System.IO.FileInfo(Server.MapPath("../upLoad/template/客户需求表.xls"));
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename="+System.Web.HttpUtility.UrlEncode(file.Name,System.Text.Encoding.UTF8));//这样中文名不会出现乱码.
//Response.AddHeader("Content-Disposition", "attachment;filename=" + file.Name.ToString());
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(file.FullName);
Response.End();
Response.Flush();
Response.Clear();
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(file.FullName);
Response.End();
Response.Flush();
Response.Clear();
}
//单击: 上传Excel表.
protected void btn_upload_Click(object sender, ImageClickEventArgs e)
{
ImportFromExcel ole = new ImportFromExcel();
string xlsfile = this.file_excel.PostedFile.FileName;
string resultPath = Server.MapPath("~/upload/template/" + Path.GetFileName(this.file_excel.PostedFile.FileName));
if (File.Exists(resultPath))
{
File.Delete(resultPath);
}
try
{
file_excel.SaveAs(resultPath);
}
catch (Exception ex)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('" + ex.Message.Replace("\'", "\"") + "');", true);
}
DataTable dt = null;
try
{
dt = ole.Import(resultPath);
}
catch (Exception ex)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('" + ex.Message.Replace("\'", "\"") + "');", true);
return;
}
if (!LoadFileExcel(dt))
{
return;
}
File.Delete(resultPath);
}
//绑定Excel数据;
public DataTable Import(string xlsPath)
{
// 连接字符串
//string xlsPath = this.file_excel.PostedFile.FileName;//Server.MapPath("~/Excel/客户需求表.xls");
if (xlsPath == "")
{
return null;
}
// 相对物理路径:
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Extended Properties=\"Excel 8.0;IMEX=1;HDR=NO;\";" + "data source=" + xlsPath;
/**
* 用于 Extended Properties 值的有效 Excel 版本。
* 对于 Microsoft Excel 8.0 (97)、9.0 (2000) 和 10.0 (2002) 工作簿,请使用 Excel 8.0。
* 对于 Microsoft Excel 5.0 和 7.0 (95) 工作簿,请使用 Excel 5.0。
* 对于 Microsoft Excel 4.0 工作簿,请使用 Excel 4.0。
* 对于 Microsoft Excel 3.0 工作簿,请使用 Excel 3.0。
**/
// 查询语句
string sql = "SELECT * FROM [Sheet1$]";
if (xlsPath == "")
{
throw new Exception("文件路径不能为空!");
}
if (!System.IO.File.Exists(xlsPath))
{
throw new Exception("文件不存在!");
}
DataSet ds = null;
try
{
using (OleDbDataAdapter da = new OleDbDataAdapter(sql, connStr))
{
ds = new DataSet();
da.Fill(ds); // 填充DataSet
}
}
catch (Exception ex)
{
throw new Exception("上传的Excel文件被占用,请保存或关闭这个文件!", ex);//抛出的是用户自定义的异常信息.
}
return ds.Tables[0];
}
//验证后缀名是否为: ".xls"
public bool ValidateExtension(string fileName)
{
string fileExtension = System.IO.Path.GetExtension(fileName).ToLower();
if (fileExtension == ".xls")
return true;
else
return false;
}
protected void lbtnUploadTemplate_Click(object sender, EventArgs e)
{
System.IO.FileInfo file = new System.IO.FileInfo(Server.MapPath("../upLoad/template/客户需求表.xls"));
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename="+System.Web.HttpUtility.UrlEncode(file.Name,System.Text.Encoding.UTF8));//这样中文名不会出现乱码.
//Response.AddHeader("Content-Disposition", "attachment;filename=" + file.Name.ToString());
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(file.FullName);
Response.End();
Response.Flush();
Response.Clear();
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(file.FullName);
Response.End();
Response.Flush();
Response.Clear();
}
//单击: 上传Excel表.
protected void btn_upload_Click(object sender, ImageClickEventArgs e)
{
ImportFromExcel ole = new ImportFromExcel();
string xlsfile = this.file_excel.PostedFile.FileName;
string resultPath = Server.MapPath("~/upload/template/" + Path.GetFileName(this.file_excel.PostedFile.FileName));
if (File.Exists(resultPath))
{
File.Delete(resultPath);
}
try
{
file_excel.SaveAs(resultPath);
}
catch (Exception ex)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('" + ex.Message.Replace("\'", "\"") + "');", true);
}
DataTable dt = null;
try
{
dt = ole.Import(resultPath);
}
catch (Exception ex)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('" + ex.Message.Replace("\'", "\"") + "');", true);
return;
}
if (!LoadFileExcel(dt))
{
return;
}
File.Delete(resultPath);
}
//绑定Excel数据;
public DataTable Import(string xlsPath)
{
// 连接字符串
//string xlsPath = this.file_excel.PostedFile.FileName;//Server.MapPath("~/Excel/客户需求表.xls");
if (xlsPath == "")
{
return null;
}
// 相对物理路径:
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Extended Properties=\"Excel 8.0;IMEX=1;HDR=NO;\";" + "data source=" + xlsPath;
/**
* 用于 Extended Properties 值的有效 Excel 版本。
* 对于 Microsoft Excel 8.0 (97)、9.0 (2000) 和 10.0 (2002) 工作簿,请使用 Excel 8.0。
* 对于 Microsoft Excel 5.0 和 7.0 (95) 工作簿,请使用 Excel 5.0。
* 对于 Microsoft Excel 4.0 工作簿,请使用 Excel 4.0。
* 对于 Microsoft Excel 3.0 工作簿,请使用 Excel 3.0。
**/
// 查询语句
string sql = "SELECT * FROM [Sheet1$]";
if (xlsPath == "")
{
throw new Exception("文件路径不能为空!");
}
if (!System.IO.File.Exists(xlsPath))
{
throw new Exception("文件不存在!");
}
DataSet ds = null;
try
{
using (OleDbDataAdapter da = new OleDbDataAdapter(sql, connStr))
{
ds = new DataSet();
da.Fill(ds); // 填充DataSet
}
}
catch (Exception ex)
{
throw new Exception("上传的Excel文件被占用,请保存或关闭这个文件!", ex);//抛出的是用户自定义的异常信息.
}
return ds.Tables[0];
}
//验证后缀名是否为: ".xls"
public bool ValidateExtension(string fileName)
{
string fileExtension = System.IO.Path.GetExtension(fileName).ToLower();
if (fileExtension == ".xls")
return true;
else
return false;
}