知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
asp.net導(dǎo)出數(shù)據(jù)到Excel的方法(完全無組件,不用調(diào)用Excel.exe)
發(fā)表時(shí)間:2020-10-18
發(fā)布人:葵宇科技
瀏覽次數(shù):58
今天把大家最常用的功能 asp.net導(dǎo)出數(shù)據(jù)到Excel, 通常的方法 是組件形式的,但是ASP.NET 對(duì)殺死Excel.exe支持不夠好,特別還需要設(shè)置dcom太麻煩了.現(xiàn)在我給大家的是我做 開發(fā),已經(jīng)應(yīng)用到實(shí)際項(xiàng)目的方法,該方法不用調(diào)用Excel.exe進(jìn)程.有不明白的,可以在下面留言,我會(huì)做解答的. using System;
using System.Text;
using System.Data;
using System.Data.OleDb;
namespace PowerAgent.DBUtility
{
/**//// <summary>
/// DataToExcel 的摘要說明。
/// DataToExcel 的摘要說明。
/// </summary>
public class DataToExcel
{
const string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0;";
public DataToExcel()
{
}
public string DataTableToExcel(DataTable dt, string excelPath)
{
if (dt == null)
{
return "DataTable不能為空";
}
int rows = dt.Rows.Count;
int cols = dt.Columns.Count;
StringBuilder sb;
string connString;
if (rows == 0)
{
return "沒有數(shù)據(jù)";
}
sb = new StringBuilder();
connString = string.Format(ConnectionString, excelPath);
//生成創(chuàng)建表的腳本
sb.Append("CREATE TABLE ");
sb.Append(dt.TableName + " ( ");
for (int i = 0; i < cols; i++)
{
if (i < cols - 1)
sb.Append(string.Format("{0} varchar,", dt.Columns.ColumnName));
else
sb.Append(string.Format("{0} varchar)", dt.Columns.ColumnName));
}
using (OleDbConnection objConn = new OleDbConnection(connString))
{
OleDbCommand objCmd = new OleDbCommand();
objCmd.Connection = objConn;
objCmd.CommandText = sb.ToString();
try
{
objConn.Open();
objCmd.ExecuteNonQuery();
}
catch (Exception e)
{
return "在Excel中創(chuàng)建表失敗,錯(cuò)誤信息:" + e.Message;
}
生成插入數(shù)據(jù)腳本#region 生成插入數(shù)據(jù)腳本
sb.Remove(0, sb.Length);
sb.Append("INSERT INTO ");
sb.Append(dt.TableName + " ( ");
for (int i = 0; i < cols; i++)
{
if (i < cols - 1)
sb.Append(dt.Columns.ColumnName + ",");
else
sb.Append(dt.Columns.ColumnName + ") values (");
}
for (int i = 0; i < cols; i++)
{
if (i < cols - 1)
sb.Append("@" + dt.Columns.ColumnName + ",");
else
sb.Append("@" + dt.Columns.ColumnName + ")");
}
#endregion
//建立插入動(dòng)作的Command
objCmd.CommandText = sb.ToString();
OleDbParameterCollection param = objCmd.Parameters;
for (int i = 0; i < cols; i++)
{
param.Add(new OleDbParameter("@" + dt.Columns.ColumnName, OleDbType.VarChar));
}
//遍歷DataTable將數(shù)據(jù)插入新建的Excel文件中
foreach (DataRow row in dt.Rows)
{
for (int i = 0; i < param.Count; i++)
{
param.Value = row;
}
objCmd.ExecuteNonQuery();
}
return "數(shù)據(jù)已成功導(dǎo)入Excel";
}//end using
}
}//end class
}
昆明軟件開發(fā)公司中的佼佼者,致力定制軟件開發(fā),昆明軟件開發(fā)請(qǐng)聯(lián)系昆明葵宇科技有限公司,電話:15987118523。
相關(guān)案例查看更多
相關(guān)閱讀
- 網(wǎng)絡(luò)公司報(bào)價(jià)
- 云南科技公司
- 百度排名
- 網(wǎng)站開發(fā)哪家好
- 前端開發(fā)
- 云南電商網(wǎng)站建設(shè)
- 楚雄網(wǎng)站建設(shè)公司
- 云南網(wǎng)站建設(shè)百度
- 云南微信小程序開發(fā)
- 云南網(wǎng)站建設(shè)服務(wù)
- 網(wǎng)站開發(fā)
- 云南網(wǎng)站維護(hù)
- 出入小程序
- 云南網(wǎng)站建設(shè)哪家公司好
- 報(bào)廢車管理系統(tǒng)
- 小程序開發(fā)排名前十名
- 小程序技術(shù)
- 網(wǎng)站建設(shè)案例
- 云南小程序定制
- 云南網(wǎng)站建設(shè)制作
- 云南網(wǎng)站建設(shè)電話
- 江蘇小程序開發(fā)
- 小程序定制開發(fā)
- 云南小程序開發(fā)公司推薦
- 南通小程序制作公司
- 云南小程序被騙蔣軍
- 小程序分銷商城
- 小程序商城
- 汽車拆解管理系統(tǒng)
- 企業(yè)網(wǎng)站