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

ASP.NET中的Excel操作(OLEDB方式)

2015-01-22 18:05 435 查看
一:OLEDB方式操作Excel的个人理解

就是把要操作的Excel当作一个数据库,所有对Excel的操作,就变成了对“数据库”的操作。那么这时就需要有一个数据库的连接字符串。

代码如下:

connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + strFileName + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES\"“;


其中的strFileName是指的Excel文件名称。

二:读取Excel文件,并将内容读到DataTable中。

代码如下:

/// <summary>
/// 读取Excel
/// </summary>
/// <param name="strFileName">Excel文件名</param>
/// <param name="fileType"></param>
/// <param name="sheetName">Excel中的sheet的名字</param>
public static DataTable ExcelReader(string strFileName, string fileType, string sheetName)
{
string connStr = "";
DataTable _table;
connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + strFileName + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES\"";
try
{
using (OleDbConnection conn = new OleDbConnection(connStr))
{
conn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(string.Format("SELECT * FROM [{0}$]", sheetName), conn);

DataSet myDataSet = new DataSet();

int i = myCommand.Fill(myDataSet);

_table = myDataSet == null ? null : myDataSet.Tables.Count == 0 ? null : myDataSet.Tables[0];
}
return _table;
}
catch (Exception ex)
{
return null;
}
}


返回的结果就是一个DataTable.
三:将DataTable保存为Excel文件

代码如下:

/// <summary>
/// 从DataTable中读取数据到excel中
/// </summary>
/// <param name="dt">传入的DataTable</param>
public static void DTToExcel(DataTable dt)
{
string fileName = ((string.IsNullOrEmpty(dt.TableName)) ? "Excel" : dt.TableName) + ".xls";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName);
HttpContext.Current.Response.Charset = "UTF-8";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
GridView GridView1 = new GridView();
GridView1.DataSource = dt;
GridView1.DataBind();
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}


在使用DataTable导出Excel文件时,需要先创建DataTable,下面是DataTable的创建小实例:

DataTable dt = new DataTable();
string[] strArr = new string[]
{
"1",
"2222",
"333333333",
"444"
};
for (int i = 0; i < strArr.Count(); i++)
{
dt.Columns.Add(strArr[i]);
}
for (int i = 0; i < strArr.Count(); i++)
{
DataRow dr2 = dt.NewRow();
dr2[0] = "总记";
dr2[1] = "11";
dr2[2] = "22";
dr2[3] = "33";
dt.Rows.Add(dr2);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: