出處:http://www.csyh.com
雖然,sql server中的DTS也能將資料倒入Excel,但不如使用程式靈活,
本程式主要代碼在按鈕函數內。可適應於報表開發的讀取資料部分:)
我刪除了原程式的很多垃圾代碼,只留主要起作用的代碼
//加入名稱空間
using System.Data;
using System.Data.SqlClient;
//定義方法GetData(),返回一個資料表
private System.Data.DataTable GetData()
{
SqlConnection conn= new SqlConnection(@"Server=PXGD2;Initial Catalog=pingxiang;Uid=sa;Pwd=;");
SqlDataAdapter adapter= new SqlDataAdapter("select username 使用者名稱,catalyst_port 佔用連接埠,home_address 住家住址,ip_address
ip地址,phone 電話,addtime 開通日期 from userinfo where catalyst_port=1 or catalyst_port='' order by ip_address desc",conn);
DataSet ds= new DataSet();
try
{
adapter.Fill(ds,"Customer");
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
return ds.Tables[0];
}
//按鈕
private void button1_Click(object sender, System.EventArgs e)
{
Excel.Application excel= new Excel.Application();
int rowIndex=1;
int colIndex=0;
excel.Application.Workbooks.Add(true);
DataTable table=GetData();
//將所得到的表的列名,賦值給儲存格
foreach(DataColumn col in table.Columns)
{
colIndex++;
excel.Cells[1,colIndex]=col.ColumnName;
}
//同樣方法處理資料
foreach(DataRow row in table.Rows)
{
rowIndex++;
colIndex=0;
foreach(DataColumn col in table.Columns)
{
colIndex++;
excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString();
}
}
//不可見,即幕後處理
excel.Visible=true;
}