国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > C# > 正文

c# DataTable 針對xml、excel、csv導入和導出

2023-05-18 12:33:14
字體:
來源:轉載
供稿:網友

此段代碼是針對DataTable 對xml、excel、csv 對文件的導入和導出功能,記錄一下,以供以后使用。

一定要導入excel 并添加引用Microsoft.Office.Interop.Excel 11.0版本。

Default.aspx.cs文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Xml;
using System.Xml.Xsl;
using System.IO;
using System.Data.OleDb;
using System.Data.Odbc;
using System.Text;
using Excel = Microsoft.Office.Interop.Excel;


namespace fantest
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Bind();
        }
        protected void Bind()
        {
            this.GridView1.DataSource = this.GetDataTable();
            this.GridView1.DataBind();
        }
        private DataTable GetDataTable()
        {
            DataSet ds = new DataSet();
            using (SqlConnection conn = new SqlConnection("server=.;uid=sa;pwd=123456;database=test"))
            {
                string sql = "select * from InfoTable where 1=1";
                SqlDataAdapter dap = new SqlDataAdapter(sql, conn);
                dap.Fill(ds,"InfoTable");
            }
            return ds.Tables["InfoTable"];
        }
        //TO XML
        protected void Button1_Click(object sender, EventArgs e)
        {
            DataTable dt = this.GetDataTable();
            StringBuilder sb = new StringBuilder();
            sb.Append("<" + dt.TableName + ">");
            foreach (DataRow row in dt.Rows)
            {
                sb.Append("<item>");

                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    sb.Append("<" + dt.Columns[i].ColumnName + ">" + row[i].ToString() + "</" + dt.Columns[i].ColumnName + ">");
                }

                sb.Append("</item>");
            }
            sb.Append("</" + dt.TableName + ">");
            Response.ClearHeaders();
            Response.AppendHeader("Content-Disposition", "attachment; filename=ss.xml");
            Response.ContentType = "text/csv";
            Response.Write(sb.ToString());
            Response.End();
        }
        //FROM XML
        protected void Button2_Click(object sender, EventArgs e)
        {         
             string filepath = Server.MapPath("ss.xml");
             if (!File.Exists(filepath))
             {
                 Page.RegisterClientScriptBlock("msg", "<script>alert('該文件不存在!')</script>");
             }
             else
             {
                 StringReader StrStream = null;
                 XmlTextReader Xmlrdr = null;
                 try
                 {
                     XmlDocument xmldoc = new XmlDocument();
                     xmldoc.Load(filepath);
                     DataSet ds = new DataSet();
                     ds.ReadXml(new XmlTextReader(new StringReader(xmldoc.InnerXml)));
                     this.GridView2.DataSource = ds.Tables[0];
                     this.GridView2.DataBind();
                 }
                 catch (Exception ex)
                 {
                     throw ex;
                 }
                 finally
                 {
                     if (Xmlrdr != null)
                     {
                         Xmlrdr.Close();
                         StrStream.Close();
                         StrStream.Dispose();
                     }
                 }
             }
        }
        //TO EXCEL
        protected void Button3_Click(object sender, EventArgs e)
        {
                //Response.Charset = "GB2312";
                //Response.ContentEncoding = System.Text.Encoding.UTF7;
                //Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("ss.xls", Encoding.UTF8).ToString());
                //Response.ContentType = "application/vnd.ms-excel";
                //this.EnableViewState = false;
                //StringWriter tw = new StringWriter();
                //HtmlTextWriter hw = new HtmlTextWriter(tw);
                //this.GridView1.RenderControl(hw);
                //Response.Write(tw.ToString());
                //Response.End(); 
               
            //上面注釋的代碼是一種以流的方式導入excel的,當數據在從此excel讀取時會報一個異常,如果要對excel寫入和讀取最好用下面一種方式

                 DataTable dt = this.GetDataTable();
                 string filepath = HttpContext.Current.Server.MapPath("ss.xls");
                 Excel.Application xlApp = new Excel.Application();
                 Excel.Workbooks w= xlApp.Workbooks;          
                 Excel.Workbook workbook = w.Add(Excel.XlWBATemplate.xlWBATWorksheet);
                 Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];
                 //寫入字段
                 for (int i = 0; i < dt.Columns.Count; i++)
                 {
                     worksheet.Cells[1, i + 1] = dt.Columns[i].ColumnName;
                 }
                 //寫入數值
                 for (int r = 0; r < dt.Rows.Count; r++)
                 {
                     for (int i = 0; i < dt.Columns.Count; i++)
                     {
                         worksheet.Cells[r + 2, i + 1] = dt.Rows[r][i];
                     }
                 }
                 worksheet.Columns.EntireColumn.AutoFit();//列寬自適應。
                 workbook.Saved = true;
                 workbook.SaveCopyAs(filepath);
                 xlApp.Quit();
                 GC.Collect();//強行銷毀
                 HttpContext.Current.Response.Buffer = true;
                 HttpContext.Current.Response.Clear();
                 HttpContext.Current.Response.ContentType = "application/ms-excel";
                 HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(filepath));
                 HttpContext.Current.Response.WriteFile(filepath);
                 HttpContext.Current.Response.Flush();
                 HttpContext.Current.Response.End();
        }
        //FROM EXCEL
        protected void Button4_Click(object sender, EventArgs e)
        {
            //Office 2007 連接字符串
            //string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "Data Source=" + @path + ";" + "Extended Properties=Excel 12.0;"
            //Office 98-2003 連接字符串(此示例使用2003) 
            string filepath = Server.MapPath("ss.xls");
            if (!File.Exists(filepath))
            {
                Page.RegisterClientScriptBlock("msg", "<script>alert('該文件不存在!')</script>");
            }
            else
            {
                string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + filepath + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
                OleDbConnection conn = new OleDbConnection(strConn);
                OleDbDataAdapter odda = new OleDbDataAdapter("select * from [Sheet1$]", conn);
                DataSet ds = new DataSet();
                odda.Fill(ds);
                this.GridView2.DataSource = ds.Tables[0];
                this.GridView2.DataBind();
            }
        }
        //TO CSV
        protected void Button5_Click(object sender, EventArgs e)
        {
            DataTable dt = this.GetDataTable();
            HttpContext.Current.Response.Clear();
            System.IO.StringWriter sw = new System.IO.StringWriter();
            int iColCount = dt.Columns.Count;
            for (int i = 0; i < iColCount; i++)
            {
                sw.Write("/"" + dt.Columns[i] + "/"");
                if (i < iColCount - 1)
                {
                    sw.Write(",");
                }
            }
            sw.Write(sw.NewLine);
            foreach (DataRow dr in dt.Rows)
            {
                for (int i = 0; i < iColCount; i++)
                {
                    if (!Convert.IsDBNull(dr[i]))
                        sw.Write("/"" + dr[i].ToString() + "/"");
                    else
                        sw.Write("/"/"");

                    if (i < iColCount - 1)
                    {
                        sw.Write(",");
                    }
                }
                sw.Write(sw.NewLine);
            }
            sw.Close();
            HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=ss.csv");
            HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            HttpContext.Current.Response.Write(sw);
            HttpContext.Current.Response.End();
        }
        //FROM CSV
        protected void Button6_Click(object sender, EventArgs e)
        {  
                    string filepath = Server.MapPath("ss.csv");
                    if (!File.Exists(filepath))
                    {
                        Page.RegisterClientScriptBlock("msg", "<script>alert('該文件不存在!')</script>");
                    }
                    else
                    {
                        string strConn = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=";
                        strConn += ";Extensions=asc,csv,tab,txt;";
                        OdbcConnection objConn = new OdbcConnection(strConn);
                        DataSet ds = new DataSet();
                        try
                        {
                            string strSql = "select * from " + filepath;
                            OdbcDataAdapter odbcCSVDataAdapter = new OdbcDataAdapter(strSql, objConn);
                            odbcCSVDataAdapter.Fill(ds);
                            this.GridView2.DataSource = ds.Tables[0];
                            this.GridView2.DataBind();
                        }
                        catch (Exception ex)
                        {
                            throw ex;
                        }
                    }
        }
    }
}

Default.aspx文件:

<%@ Page Language="C#" EnableEventValidation = "false" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="fantest._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body >
    <form id="form1" runat="server">
     <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>
        <asp:GridView ID="GridView2" runat="server">
     </asp:GridView>
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="toxml" />
        <asp:Button ID="Button2" runat="server" onclick="Button2_Click"
            Text="from xml" />
        <asp:Button ID="Button3" runat="server" onclick="Button3_Click"
            Text="toexcel" />
        <asp:Button ID="Button4" runat="server" onclick="Button4_Click"
            Text="fromexcel" />
        <asp:Button ID="Button5" runat="server" onclick="Button5_Click" Text="tocsv" />
        <asp:Button ID="Button6" runat="server" onclick="Button6_Click"
            Text="fromcsv" />
      
    </form>
</body>
</html>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
jizz亚洲大全| 国产91大片| 国产精品久久一区二区三区不卡| 亚洲欧美一区二区三区在线播放| 国产系列电影在线播放网址| 久久久久久久久亚洲精品| 免费一区二区三区视频狠狠| 久热中文字幕精品视频在线| 好男人免费精品视频| 天堂中文在线视频| 日本电影在线观看| 国产精品一卡二卡三卡| 国产一二三区在线观看| 国产精品视频一区二区三区麻豆| 国产爆初菊在线观看免费视频网站| 91福利在线视频| v天堂福利视频在线观看| 久久精品亚洲7777影院| 国产福利在线免费观看| 免费午夜一级| 精品一区二区三区在线观看l| 四虎免费播放| 国产一二在线观看| 亚洲videos| 中文字幕在线影院| 69国产精品| 中文字幕人成高视频| 在线观看的av网站| 中文字幕视频在线| 久草.com| а√最新版地址在线天堂| 国产福利图片| 中文字幕人成高视频| 日本不卡1区2区3区| 国产二区视频| 国产亚洲精品久久久久久青梅 | 欧美精品另类| 国产偷窥洗澡视频| 国产男女av| 四虎久久影院| 亚洲精品自拍区在线观看| 国产日韩网站| 狠狠插狠狠操| free性亚洲| 精品视频二区| 在线视频中文字幕第一页| 国产丝袜在线播放| 国产亚洲精品自在线观看| 交换国产精品视频一区| 精品资源在线看| 高清在线观看av| 黄色毛片在线| jizz国产| 人人干在线视频| 福利视频在线导航| 国产羞羞视频在线观看| 国产一区精品| 国产经典av| 在线观看av中文| 欧美日韩**字幕一区| 欧美性猛交p30| 丁香六月婷婷| 国产网友自拍视频导航网站在线观看| **三级三级97片毛片| 伊人春色在线| 久久久久久国产视频| 国产理论电影在线观看| 国产美女视频一区二区二三区| 久久久久久久久久久久久91 | 国产丝袜视频在线播放| 精品美女调教视频| 欧美日韩在线资源| 国产精品久久久精品a级小说| 国产色视频网站| 伊人影院在线播放| 永久免费av片在线观看全网站| 免费视频二区| 国产私人影院| 欧美日韩亚洲第一页| 国产福利免费在线观看| 亚洲第一页在线播放| 狠狠色丁香婷婷| 中文在线观看视频| 国产免费一级| 在线黄色av| 国产精品美女视频免费观看软件| 午夜小视频在线| 国产黄网站在线观看| 蜜桃av网站| 精品全国在线一区二区| 成人无遮挡免费网站视频在线观看| 国产黄色片中文字幕| 国产永久在线观看| 午夜影院免费| 亚洲欧美精品日韩欧美| 国产成人久久精品77777| 青青草原国产在线观看| 一本大道久久a久久精品| 国产三线在线| 国产精品合集一区二区| 中文字幕av中文字幕| 日韩av成人| 久热国产在线视频| 四虎国产精品永久| 在线观看av的网站| 亚洲成人在线播放| 亚洲精品国自产拍在线观看| 在线中文免费视频| 91亚洲精选| 在线黄色国产电影| 伊人免费在线| 亚洲一区免费在线| a视频在线观看| 欧美精品久久久久久久小说| 亚洲男人的天堂成人| 亚洲字幕成人中文在线观看| 在线国产中文字幕| 欧美日韩在线中文字幕| 国产麻豆精品高清在线播放| 天堂在线免费视频| 国产欧美日韩第一页| 97国产视频| 日本不卡影院| 中文字幕人成高视频| 国产日本视频| eeuss影院在线观看| 在线播放黄色网址| 欧美高清视频| 国产精品区一区二| 在线观看免费黄色| 中文字幕在线视频免费观看| 国产精品va在线观看视色| 亚洲成人电视网| 成年人在线观看| 亚洲视频在线观看不卡| 麻豆精品免费视频入口| 最近中文字幕大全中文字幕免费| 国产黄大片在线观看画质优化| 日本免费视频www| 国产午夜精品一区理论片| 亚洲一本大道| 国产麻豆免费| 亚洲videos| 国产成+人+亚洲+欧美+综合| 成av人免费青青久| 一本久中文高清| 国产精品视频一区二区三区麻豆| www.九九热.com| 国产h色视频在线观看| 丁香婷婷激情| 青青草视频免费在线观看| 国产高清大尺度一区二区不卡| 国产中文字幕第一页| 亚洲欧美日韩成人网| 国产极品视频| 国产精品18久久久久网站| 免费影视观看网站入口| 在线黄色av| av福利在线播放| 国产高清av| 国产精品视频福利一区二区| 中文字幕在线影院| 成网站在线观看人免费| 欧美日韩亚洲第一页| 四虎影院成人| 亚洲xxxxxx| 亚洲字幕成人中文在线观看| 国产黄色在线播放| 国产黄色一级电影| 国产国产国产国产国产国产| 国产一二在线观看| 黄色片视频在线观看| 超碰国产在线| 高清视频一区二区三区四区| 九九热在线免费视频| 九九热在线观看| 天天操天天射天天色| 国产一区二区三区不卡在线| 国产午夜电影| 中文av在线播放| 欧美性xxxx交| 国产一二在线观看| 99reav在线| 最近中文字幕mv2018在线高清| 国产精品久久麻豆| 亚洲午夜久久久久中文字幕| 四虎影院成人| 五月婷婷在线观看| 国产福利在线观看| 波多野结衣久久高清免费| 天天操夜夜摸| 亚洲男人的天堂成人| 久热精品视频在线播放| 国产一区精品| 午夜性爽视频男人的天堂| 国产精品乱码一区二区三区视频| 日本啊v在线| 国产黄色在线| 天堂资源最新版在线视频观看免费网| 国产成在线观看免费视频|