終於完成了自己的Dataset to CSV轉換(所見即所得))

public void ProduceCSV(DataGrid dgListBill,DataSet dsBill)
        {
            int colCount = dgListBill.Columns.Count;
            int valueRowCount = dsBill.Tables[0].Rows.Count;
            string[] dtHeader = new String[colCount];
            
            StringWriter sw=new StringWriter();
            sw.WriteLine("=year(d4)");
            string strColField,strLine;
            strLine ="";
            int k=0;//統計數據綁定的列數;
            //填充表頭        
            for (int i=0 ;i<colCount;i++)
            {
                
                string colType = dgListBill.Columns[i].GetType().ToString();
                if (colType == "System.Web.UI.WebControls.BoundColumn")
                {
                    BoundColumn Col = (BoundColumn)dgListBill.Columns[i];
                    if (Col.HeaderText !="操作" && Col.Visible  && Col.DataField !=null)
                    {
                        dtHeader[k] = Col.DataField;
                        strLine += GetWriteableValue(Col.HeaderText)+"    ";
                        k++;
                    }
                }
            }
            sw.WriteLine(strLine);
            //            //填充內容            
            for(int i = 0;i<valueRowCount;i++)
            {
                strLine ="";
                for(int j=0;j<k;j++)
                {
                    strColField = dtHeader[j].ToString();
                    strLine += GetWriteableValue(dsBill.Tables[0].Rows[i][strColField])+"    ";

                }
                sw.WriteLine(strLine);
            }
            ResponseAttach(sw,"輸出結果.xls","application/m*-**cel","attachment","gb2312");
            sw.Close();
        }


        public void ResponseAttach(StringWriter fileData,string strFileName,string ContentType,string OpMethod,string EncodingName)
        {
            Response.Clear();
            Response.Charset = "GB2312";
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            Response.ContentType = ContentType; 
            Response.AppendHeader("Content-Disposition", OpMethod+";filename=" +Server.UrlEncode(strFileName)); 
            Response.ContentEncoding = System.Text.Encoding.GetEncoding(EncodingName);
            Response.Write(fileData.ToString());
            //Response.Flush();
            Response.End();
            //Response.Clear();
        } 
發佈了25 篇原創文章 · 獲贊 0 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章