程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> .net DataSet 導出到Excel,.netdataset

.net DataSet 導出到Excel,.netdataset

編輯:C#入門知識

.net DataSet 導出到Excel,.netdataset


public void CreateExcel(DataSet ds, string typeid, stringFileName)        {           HttpResponse resp;            resp =Page.Response;           resp.ContentEncoding =System.Text.Encoding.GetEncoding("GB2312");           resp.AppendHeader("Content-Disposition", "attachment;filename=" +FileName);            stringcolHeaders = "", ls_item = "";            int i =0;
          //定義表對象和行對像,同時用DataSet對其值進行初始化             DataTabledt = ds.Tables[0];            DataRow[]myRow = dt.Select("");            //typeid=="1"時導出為EXCEL格式文檔;typeid=="2"時導出為XML格式文檔             if (typeid== "1")            {              //取得數據表各列標題,各標題之間以\t分割,最後一個列標題後加回車符                for (i = 0; i< dt.Columns.Count; i++)               {                  if (i == dt.Columns.Count - 1)                  {                      colHeaders+= dt.Columns[i].Caption.ToString() + "\n";                  }                  else                  {                      colHeaders+= dt.Columns[i].Caption.ToString() + "\t";                  }               }              //向HTTP輸出流中寫入取得的數據信息                resp.Write(colHeaders);              //逐行處理數據                foreach (DataRow row inmyRow)               {                 //在當前行中,逐列獲得數據,數據之間以\t分割,結束時加回車符\n                   for (i = 0; i < dt.Columns.Count;i++)                  {
                     if (i ==dt.Columns.Count - 1)                      {                         ls_item += row[i].ToString()+ "\n";                      }                      else                      {                         ls_item += row[i].ToString()+ "\t";                      }                  }                 //當前行數據寫入HTTP輸出流,並且置空ls_item以便下行數據                   resp.Write(ls_item);                  ls_item = "";               }            }            else            {               if (typeid == "2")               {                 //從DataSet中直接導出XML數據並且寫到HTTP輸出流中                   resp.Write(ds.GetXml());               }            }           //寫緩沖區中的數據到HTTP頭文檔中            resp.End();        } 

 


c#net完成數據到excel表的導入與導出

下面代碼從DataSet和excel的導入導出,具體從數據庫到DataSet應該會把!
引用COM裡面的Microsoft.Excel 11.0

1 public class ImportExportToExcel
2 {
3 private string strConn ;
4
5 private System.Windows.Forms.OpenFileDialog openFileDlg=new System.Windows.Forms.OpenFileDialog();
6 private System.Windows.Forms.SaveFileDialog saveFileDlg=new System.Windows.Forms.SaveFileDialog();
7
8 public ImportExportToExcel()
9 {
10 //
11 // TODO: 在此處添加構造函數邏輯
12 //
13 this.openFileDlg.DefaultExt = "xls";
14 this.openFileDlg.Filter = "Excel文件 (*.xls)|*.xls";
15
16 this.saveFileDlg.DefaultExt="xls";
17 this.saveFileDlg.Filter= "Excel文件 (*.xls)|*.xls";
18
19 }
20
21 從Excel文件導入到DataSet#region 從Excel文件導入到DataSet
22 // /// <summary>
23 // /// 從Excel導入文件
24 // /// </summary>
25 // /// <param name="strExcelFileName">Excel文件名</param>
26 // /// <returns>返回DataSet</returns>
27 // public DataSet ImportFromExcel(string strExcelFileName)
28 // {
29 // return doImport(strE......余下全文>>
 

net 助對於 導出excel方法的更改 有代碼

具體版本問題我還是不清楚,不過你代碼的確一點不夠規范,

public void CreateExcel(DataSet ds,string typeid,string FileName)
{
HttpResponse resp;
resp = Page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
string colHeaders= "", ls_item="";
int i=0;

//定義表對象與行對像,同時用DataSet對其值進行初始化
DataTable dt=ds.Tables[0];
DataRow[] myRow=dt.Select("");
// typeid=="1"時導出為EXCEL格式文件;typeid=="2"時導出為XML格式文件
if(typeid=="1")
{
//取得數據表各列標題,各標題之間以\t分割,最後一個列標題後加回車符
for(i=0;i<dt.Columns.Count-1;i++)
colHeaders+=dt.Columns[i].Caption.ToString()+"\t";
colHeaders +=dt.Columns[i].Caption.ToString() +"\n";
//向HTTP輸出流中寫入取得的數據信息
resp.Write(colHeaders);
//逐行處理數據
foreach(DataRow row in myRow)
{
//在當前行中,逐列獲得數據,數據之間以\t分割,結束時加回車符\n
for(i=0;i<row.ItemArray.Length-1;i++)
ls_item +=row[i].ToString() + "\t";
ls_item += row[i].ToString() +"\n";
//當前行數據寫入HTTP輸出流,並且置空ls_item以便下行數據
resp.Write(ls_item);
ls_item="";
}
}
else
{
if(typeid=="2")
{
//從DataSet中直接導出XML數據並且寫到HTTP輸出流中
resp.Write(ds.GetXml());
}
}
//寫緩沖區中的數據到HTTP頭文件中
resp.End();

}
參考資料:......余下全文>>
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved