C# 將記憶體中的datatable資料匯出為Excel(方法一,以檔案流方式匯出)【轉載】

來源:互聯網
上載者:User

標籤:

上次做了以Excel檔案為資料來源,進行資料匯入,今天,給大家分享一下如何將記憶體中的datatable以檔案流的方式匯出為Excel檔案,而且個人覺得這個方法非常不錯,高效,簡單。

技術要點:1.建立檔案流,用於寫最終的檔案StreamWriter sw = new StreamWriter(fileName, false,Encoding.GetEncoding("gb2312"));

2.使用  StringBuilder類把資料群組合為長字串插入到excel檔案中,
sb.Append(dt.rows[i][j].ToString() + "\t");
注 意,可不能漏了"\t" 這個是非常重要的! 因為c# "\t"就等於 鍵盤上的Tab  [朋友們可以試試:開啟新的txt然後輸入1按Tab,輸入2按Tab,輸入3按Tab儲存,然後開啟excel檔案  把剛剛儲存的txt檔案拉進去開啟你就發現原來。這樣寫的話1 2 3 會分別在每個儲存格上的了。所以上面才使用 "\t"連起來資料庫出來的那堆資料,這樣一次性導進去,他們就會按照每個儲存格來填充!]

廢話不多說了,直接上code。

需要引用:
using System.IO;

publicvoid WriteExcel(DataSet ds, string path)//其中path裡要包含要建立的Excel檔案的名稱
        {
            try
            {
                StreamWriter sw =new StreamWriter(path, false,Encoding.GetEncoding("gb2312"));
                StringBuilder sb =new StringBuilder();
                for (int k =0; k < ds.Tables[0].Columns.Count; k++)
                {
                    sb.Append(ds.Tables[0].Columns[k].ColumnName.ToString() +"\t");
                }
                sb.Append(Environment.NewLine);

                for (int i =0; i < ds.Tables[0].Rows.Count; i++)
                {
                     for (int j =0; j < ds.Tables[0].Columns.Count; j++)
                    {
                        sb.Append(ds.Tables[0].Rows[i][j].ToString() +"\t");
                    }
                    sb.Append(Environment.NewLine);//每寫一行資料後換行
                }
                sw.Write(sb.ToString());
                sw.Flush();
                sw.Close();//釋放資源
                MessageBox.Show("已經產生指定Excel檔案!");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }            
        }

C# 將記憶體中的datatable資料匯出為Excel(方法一,以檔案流方式匯出)【轉載】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.