c# DataTable 针对xml、excel、csv导入和导出
{
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>
c# DataTable 针对xml、excel、csv导入和导出