62,243
社区成员




protected void btnUploadExcel_Click(object sender, EventArgs e)
{
//判断要保存临时文件的路径是否存在,不存在则创建
if (!System.IO.Directory.Exists(@System.Web.HttpContext.Current.Server.MapPath("Temp")))
{
System.IO.Directory.CreateDirectory(@System.Web.HttpContext.Current.Server.MapPath("temp"));
}
string TempFileName = "temp" + Guid.NewGuid().ToString(); //临时文件名称
string TempFileUrl = "~/Temp/" + TempFileName + ".xls"; //临时相对文件路径
string strTempPath = System.Web.HttpContext.Current.Server.MapPath(TempFileUrl); //临时文件物理路径
if (this.CheckUpload(this.fileupExcel)) //判断上传文件的合法性
{
this.fileupExcel.PostedFile.SaveAs(strTempPath); //保存上传文件到临时文件
DataSet dsExcel = new DataSet();
dsExcel = GetExcelSource(strTempPath); //获取刚刚上传的文件的数据
//然后把dsExcel中的数据放到数据库中就好了,这个你自己写吧 }
}
/// <summary>
/// 判断要上传的文件的合法性
/// </summary>
/// <param name="upload">文件上传控件</param>
/// <returns>可以上传:true 不能或无需上传:false</returns>
public bool CheckUpload(System.Web.UI.WebControls.FileUpload upload)
{
if (upload.PostedFile.ContentLength > 0)
{
if (upload.PostedFile.ContentLength > 1024000)//判断大小
{
return false;
}
string strType = "xls";//判断类型
string[] arr_sType = strType.Split(';');
string strName = upload.PostedFile.FileName;
int nPos = strName.LastIndexOf(".");
if (nPos == -1)
{
return false;//没有扩展名
}
strName = strName.Substring(nPos + 1).ToLower();//取文件扩展名(不包括点)
for (int i = 0; i < arr_sType.Length; i++)
{
if (strName == arr_sType[i])
{
return true;//类型匹配了
}
}
return false;//如果没有从上面返回,就是类型不匹配
}
else
{
return false;//没有选择文件
}
/// <summary>
/// 得到服务器端Excel文件的数据
/// </summary>
/// <param name="filepath"></param>
private DataSet GetExcelSource(string filepath)
{
try
{
DataSet dsExcel = new DataSet();
Excel.Application app = new Excel.Application();
Excel.Workbooks workbooks;
Excel.Workbook workbook;
workbooks = app.Workbooks;
workbook = workbooks.Add(filepath);
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties=\"Excel 8.0;IMEX=1\"";
OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + worksheet.Name + "$]", strConn);
oada.Fill(dsExcel);
Marshal.FinalReleaseComObject(worksheet);
worksheet = null;
workbook.Close(Type.Missing, Type.Missing, Type.Missing);
Marshal.FinalReleaseComObject(workbook);
workbook = null;
workbooks.Close();
Marshal.FinalReleaseComObject(workbooks);
workbooks = null;
app.Quit();
Marshal.FinalReleaseComObject(app);
app = null;
GC.Collect();
return dsExcel ;
}
catch
{
}
}