asp.net中Excel导入,导出
2009-12-21 21:07
309 查看
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
//导出Excel文件
public void OutputExcel_Click(object sender, EventArgs e)
{
string sql = "SELECT * FROM Props_Type";
DataSet ds = new DataSet();
SqlConnection con = DBHelper.Connection;
SqlDataAdapter sda = new SqlDataAdapter(sql, con);
sda.Fill(ds, "Props_Type");
StringBuilder sb = new StringBuilder();
//在Excel文件里面显示的[对应数据库里面的字段]
sb.AppendLine("道具类型ID:\t"+"道具类型名称:\t");
foreach (DataRow dr in ds.Tables[0].Rows )
{
sb.Append(dr.ItemArray[0].ToString() + "\t");
sb.Append(dr.ItemArray[1].ToString() + "\t\r\n");
}
HttpResponse hr = Page.Response;
hr.Write("以下是导出的文件内容:\r\n");
hr.ContentEncoding = Encoding.GetEncoding("GBK");
//filename="output.xls"我这里写死了的,就是Excel里面Sheet1名字
hr.AppendHeader("Content-Disposition","attachment;filename=output.xls");
//这里设置输出的类型
hr.ContentType = "application/ms-excel";
hr.Write(sb.ToString () );
hr.Flush();
hr.End();
}
//导入文件
protected void ImportExcel_Click(object sender, EventArgs e)
{
string filePath = "";
string getErrorMsg = "";
DataSet ds = new DataSet();
if (!fuFile.HasFile)
{
Response.Write("<script>alert('请选择你要导入的Excel文件');</script>");
return;
}
//获取文件的后缀名
string fileExt = System.IO.Path.GetExtension(fuFile.FileName);
if (fileExt != ".xls")
{
Response.Write("<script>alert('文件类型错误!');</script>");
return;
}
//获取绝对路径
filePath = fuFile.PostedFile.FileName;
//string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"dBASE IV;HDR=Yes;IMEX=1\";Data Source = " + filePath + "";
string conn = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";Data Source=" + filePath;
OleDbConnection excelCon = new OleDbConnection(conn);
//output是Excel文件里面工作表名 默认为Sheet1,后面需要加上$符号
OleDbDataAdapter odda = new OleDbDataAdapter("SELECT * FROM [output$]",excelCon);
try
{
odda.Fill(ds, "Props_Type");
}
catch (Exception ex)
{
Response.Write(ex.Message);
Response.Write("<script>alert('"+ex.Message+"!')</script>");
}
finally
{
excelCon.Close();
excelCon.Dispose();
}
//将数据写到数据库里面
if (ds.Tables[0].Rows.Count != 0)
{
string sql = "";
SqlConnection con = DBHelper.Connection;
SqlCommand sqlCmd = con.CreateCommand();
SqlTransaction sqlTran = con.BeginTransaction();
sqlCmd.Transaction = sqlTran;
try
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
//道具类型名称为output工作表里面的字段
sql = "INSERT INTO Props_Type VALUES('" + ds.Tables[0].Rows[i]["道具类型名称"] + "')";
sqlCmd.CommandText = sql;
sqlCmd.ExecuteNonQuery();
}
sqlTran.Commit();
}
catch (Exception ex)
{
getErrorMsg = ex.Message;
Response.Write(ex.Message);
sqlTran.Rollback();
}
finally
{
con.Close();
con.Dispose();
}
if (getErrorMsg == "")
{
Response.Write("<script>alert('导入Excel文件成功!')</script>");
}
else { Response.Write("<script>alert('导入Excel文件失败!')</script>"); }
}
}
}
相关文章推荐
- ASP.NET导出导入Excel
- ASP.NET NPOI Excel导入、导出,高级、全面、总结版
- asp.net中Excel导入导出控件 2.0升级版本和1.0版本代码开源
- ASP.Net MVC利用NPOI导入导出Excel
- asp.net 客户端导出excel 真正的excel 可以导入 源码
- asp.net Excel导入和导出
- ASP.NET中导入和导出标准Excel文件(转)
- ExcelHelper(Excel和C#、asp.net导入导出,通用类)(一)
- ASP.NET Excel导入导出SQL Server整理(转)
- asp.net导入导出EXCEL
- Asp.net导入导出Excel总结
- ASP.NET对EXCEL的导入导出
- ASP.NET之Excel下载模板、导入、导出操作
- c#.net 使用NPOI导入导出标准Excel (asp.net winform csharp)
- [导入]asp.net 把datatable的数据导出到EXCEL
- ASP.Net MVC利用NPOI导入导出Excel - RuleLu
- asp.net mvc 数据导出excel表及自excel表导入数据到相应表
- asp.net Mvc Npoi 导出导入 excel
- ExcelHelper(Excel和C#、asp.net导入导出,通用类)(二)
- asp.net导出/导入规则的Excel(.xls)文件