亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > 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>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲自拍在线观看| 欧美日韩国产成人在线观看| 久久久久久久国产精品视频| 久久久久久久久久婷婷| 久久久爽爽爽美女图片| 成人国内精品久久久久一区| 日韩精品在线观看网站| 亚洲成人精品视频| 欧美大胆在线视频| 成人黄在线观看| 国产精品爱久久久久久久| 亚洲欧美另类中文字幕| 视频一区视频二区国产精品| 亚洲第一av网| 欧美电影在线观看高清| 亚洲国产日韩精品在线| 国产精品嫩草影院久久久| 亚洲精品视频免费在线观看| 亚洲人成电影网站| 亚洲色图av在线| 久久99国产精品久久久久久久久| 亚洲成人av中文字幕| 91久久久在线| 亚洲人成电影在线| 欧美精品福利在线| 亚洲国产91精品在线观看| 国产日韩欧美在线播放| 国内精品小视频在线观看| 亚洲日韩中文字幕| 久久精品影视伊人网| 亚洲精品自产拍| **欧美日韩vr在线| 亚洲韩国青草视频| 久久综合亚洲社区| 91系列在线观看| 成人黄色激情网| 91久久精品久久国产性色也91| 亚洲无限乱码一二三四麻| 国产精品久久久久久久天堂| 国产一区二区成人| 亚洲精品免费av| 2020欧美日韩在线视频| 亚洲精品www久久久久久广东| 亚洲男人的天堂在线播放| 欧美国产亚洲精品久久久8v| 综合网日日天干夜夜久久| 中文字幕不卡在线视频极品| 亚洲一区久久久| 欧美日韩亚洲一区二区三区| 国产精品久久久久久av| 91在线观看免费高清完整版在线观看| 92看片淫黄大片欧美看国产片| 国产深夜精品福利| 中文字幕在线看视频国产欧美在线看完整| 亚洲影影院av| 国产精品久久久久久久久久尿| 日韩欧美国产网站| 国产亚洲免费的视频看| 国产精品入口免费视频一| 久久人人爽人人爽人人片av高清| 97超级碰碰人国产在线观看| 日韩一区视频在线| 亚洲精品国产拍免费91在线| 在线视频日本亚洲性| 亚洲男人第一av网站| 亚洲毛片在线看| 成人h视频在线| 亚洲欧美日韩中文在线制服| 国产精品久久国产精品99gif| 久久久久久久久综合| 国产亚洲福利一区| 亚洲国产精品成人一区二区| 日韩免费看的电影电视剧大全| 亚洲美女视频网| 亚洲少妇激情视频| 亚洲精品国产拍免费91在线| 亚洲男子天堂网| 久久五月情影视| 亚洲欧美国产一本综合首页| 一区二区三区四区在线观看视频| 136fldh精品导航福利| 亚洲国产日韩欧美在线图片| 欧美激情va永久在线播放| 国产网站欧美日韩免费精品在线观看| 97视频免费看| 黄色一区二区在线| 国产97在线视频| 8050国产精品久久久久久| 青草青草久热精品视频在线观看| 97色在线视频观看| 日韩一区二区久久久| 国产剧情久久久久久| 国产欧美精品一区二区| 亚洲人午夜精品免费| 久久久亚洲影院你懂的| 国产一区二区视频在线观看| 国产成人精品在线播放| 久久国产精品久久精品| 亚洲新声在线观看| 亚洲欧美成人在线| 欧美国产日韩一区二区三区| 一区二区三区视频在线| 国产精品欧美一区二区三区奶水| 国内精品久久久久影院 日本资源| 久久久视频在线| 色悠悠国产精品| 欧美精品中文字幕一区| 另类天堂视频在线观看| 亚洲精品视频播放| 不卡伊人av在线播放| 久久中文精品视频| 8x海外华人永久免费日韩内陆视频| 成人黄色中文字幕| 久久国产精品偷| 欧美一区亚洲一区| 伊人伊成久久人综合网站| 久久免费视频这里只有精品| 91成人在线播放| 91视频-88av| 日韩在线播放av| 81精品国产乱码久久久久久| 26uuu亚洲伊人春色| 九九久久久久久久久激情| 日韩欧美在线网址| 日韩欧美精品中文字幕| 亚洲视频在线免费看| 国产精品美女网站| 亚洲精品电影在线观看| 欧美性xxxx极品高清hd直播| 久久视频在线播放| 久久精品99国产精品酒店日本| 亚洲美女自拍视频| 91精品国产免费久久久久久| 超碰97人人做人人爱少妇| 国产精品成人国产乱一区| 国产精品精品一区二区三区午夜版| 欧美一区亚洲一区| 大伊人狠狠躁夜夜躁av一区| xvideos成人免费中文版| 日韩电影中文字幕一区| 欧美亚洲另类视频| 欧美激情欧美激情| 国产婷婷97碰碰久久人人蜜臀| 日韩美女视频免费看| 欧美国产在线电影| 久久影院在线观看| 久久免费成人精品视频| 北条麻妃在线一区二区| 亚洲国产精品va在线看黑人| 久久精品国产综合| 欧美另类在线观看| 日本道色综合久久影院| 日韩电影免费在线观看中文字幕| 欧美一区二区三区四区在线| 日韩电影中文 亚洲精品乱码| 国产最新精品视频| 亚洲综合精品伊人久久| 国产深夜精品福利| 久久影视三级福利片| 亚洲精品乱码久久久久久按摩观| 91国产高清在线| 欧美精品videofree1080p| 欧美亚洲免费电影| 色小说视频一区|