当前位置:文档之家› .NET中用C#将DataTable中的数据集导出为EXCEL或CSV文件

.NET中用C#将DataTable中的数据集导出为EXCEL或CSV文件

.NET中用C#将DataTable中的数据集导出为EXCEL或CSV文件
.NET中用C#将DataTable中的数据集导出为EXCEL或CSV文件

.NET中用C#将DataTable中的数据集导出为EXCEL 或CSV文件

有的时候客户需要将筛选后的数据从服务器上以EXCEL或CSV文件格式保存到本地,

比如:用户需要将服务器存储的客户邮箱信息下载到本地,然后导入到126邮箱。

进行处理:

CSV

DataTable dt = DBHelper.GetTable(CommandType.Text, cmdText);

if (dt.Rows.Count != 0)

{

int rows = dt.Rows.Count;

Response.ClearHeaders();

Response.ContentType = "application/vnd.ms-excel";

Response.Charset = "";

Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode("数据导出文件" + DateTime.Now.Ticks + ".csv"));

System.IO.StreamWriter objWriter = new

System.IO.StreamWriter(Response.OutputStream,

System.Text.Encoding.UTF8);

StringBuilder result = new StringBuilder();

result.Append("联系组,");

result.Append("姓名,");

result.Append("邮件地址,");

result.Append("联系地址,");

result.Append("邮政编码,");

result.Append("联系电话,");

result.Append("移动电话,");

result.Append("公司,");

result.Append("部门,");

result.Append("职位,");

objWriter.WriteLine(result.ToString()); //输出标题行CSV

文件中以“,”隔开,当拼凑到一行时,用WriteLine输出,而不是Write

for (int i = 0; i < rows; i++)

{

result = new StringBuilder();

result.Append("邮箱联系组,");

result.Append(dt.Rows[i]["lianxiren"].ToString() + ",");

result.Append(dt.Rows[i]["email"].ToString() + ","); result.Append(dt.Rows[i]["addr"].ToString() + ",");

result.Append(dt.Rows[i]["postcode"].ToString() + ","); result.Append(dt.Rows[i]["tel"].ToString() + ",");

result.Append(dt.Rows[i]["mobile"].ToString() + ","); result.Append(dt.Rows[i]["compname"].ToString() + ","); result.Append(dt.Rows[i]["dpt"].ToString() + ",");

result.Append(dt.Rows[i]["position"].ToString() + ","); objWriter.WriteLine(result.ToString());

}

objWriter.Close();

Response.End();

}

EXCEL

DataTable dt = DBHelper.GetTable(CommandType.Text, cmdText);

if (dt.Rows.Count != 0)

{

int rows = dt.Rows.Count;

Response.ContentType = "application/vnd.ms-excel";

Response.Charset = "";

Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode("导出文件.xls"));

System.IO.StreamWriter objWriter = new

System.IO.StreamWriter(Response.OutputStream,

System.Text.Encoding.UTF8);

objWriter.WriteLine("");

objWriter.WriteLine("

progid=\"Excel.Sheet\"?>");

objWriter.WriteLine("

xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\"

xmlns:o=\"urn:schemas-microsoft-com:office:office\"

xmlns:x=\"urn:schemas-microsoft-com:office:excel\"

xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\"

xmlns:html=\"https://www.doczj.com/doc/de1081358.html,/TR/REC-html40\">");

objWriter.WriteLine("");

objWriter.WriteLine("

");

objWriter.WriteLine("

ss:Width=\"33\"/>");

objWriter.WriteLine("

ss:Width=\"250\"/>");

objWriter.WriteLine("

ss:Width=\"250\"/>");

objWriter.WriteLine("

ss:Width=\"250\"/>");

objWriter.WriteLine("

ss:Width=\"130\"/>");

objWriter.WriteLine("");

objWriter.WriteLine("编号");

objWriter.WriteLine("第一列");

objWriter.WriteLine("第二列");

objWriter.WriteLine("第三列");

objWriter.WriteLine("第四列");

objWriter.WriteLine("");

for (int i = 0; i < rows; i++) //注:一直用WriteLine进行输出,因为CSV文件是以“,”为分割的简单文件格式。而EXCEL是记录行的 {

objWriter.WriteLine("");

objWriter.WriteLine("" + (i + 1).ToString() + "");

objWriter.WriteLine("" + dt.Rows[i]["row1"].ToString() + " " + "");

objWriter.WriteLine("" + dt.Rows[i]["row2"].ToString() + " " + "");

objWriter.WriteLine("" + dt.Rows[i]["row3"].ToString() + "");

objWriter.WriteLine("" + dt.Rows[i]["row4"].ToString() + "");

objWriter.WriteLine("");

}

objWriter.WriteLine("

");

objWriter.WriteLine("");

objWriter.WriteLine("");

objWriter.Close();

Response.End();

}

FROM : jhfcjl

导出数据到EXCEL

Private Sub Command1_Click() Dim 文件名称As String 文件名称= "C:\Documents and Settings\Administrator\桌面\Hellod.Doc " Dim uObjDoc As Word.Document Set uObjWord = New Word.Application uObjWord.Documents.Add "Normal", IIf(iMode = 1, True, False) '1、根据"Normal"模板添加一个新的文档[1-创建一个模板,0-创建一个文件] uObjWord.Documents.Save NoPrompt:=True, OriginalFormat:=wdWordDocument '2、设置Word对象为自动保存模式 uObjWord.ActiveDocument.SaveAs 文件名称'3、保存Word文档到文件名称 Set uObjDoc = Nothing End Sub EXCEL用法 Public Function ExporToExcel(strOpen As String) '********************************************************* '* 名称:ExporToExcel '* 功能:导出数据到EXCEL '* 用法:ExporToExcel(sql查询字符串) '********************************************************* Dim Rs_Data As New ADODB.Recordset Dim Irowcount As Integer Dim Icolcount As Integer Dim xlApp As New Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim xlQuery As Excel.QueryTable With Rs_Data If .State = adStateOpen Then .Close End If .ActiveConnection = Cn .CursorLocation = adUseClient .CursorType = adOpenStatic .LockType = adLockReadOnly .Source = strOpen .Open End With

excel导入导出通用方法

1.package https://www.doczj.com/doc/de1081358.html,mon.utils; 2.import java.io.OutputStream; 3.import java.util.List; 4.import javax.servlet.http.HttpServletResponse; 5.import org.apache.struts2.ServletActionContext; 6.import https://www.doczj.com/doc/de1081358.html,ng.reflect.Field; 7. 8.import jxl.Workbook; 9.import jxl.format.Alignment; 10.import jxl.format.Border; 11.import jxl.format.BorderLineStyle; 12.import jxl.format.VerticalAlignment; 13.import https://www.doczj.com/doc/de1081358.html,bel; 14.import jxl.write.WritableCellFormat; 15.import jxl.write.WritableFont; 16.import jxl.write.WritableSheet; 17.import jxl.write.WritableWorkbook; 18./*** 19. * @author lsf 20. */ 21.public class ExportExcel { 22./*************************************************************************** 23. * @param fileName EXCEL文件名称 24. * @param listTitle EXCEL文件第一行列标题集合 25. * @param listContent EXCEL文件正文数据集合 26. * @return 27. */ 28.public final static String exportExcel(String fileName,String[] Title, List listConte nt) { 29. String result="系统提示:Excel文件导出成功!"; 30.// 以下开始输出到EXCEL 31.try { 32.//定义输出流,以便打开保存对话框______________________begin 33. HttpServletResponse response=ServletActionContext.getResponse(); 34. OutputStream os = response.getOutputStream();// 取得输出流 35. response.reset();// 清空输出流 36. response.setHeader("Content-disposition", "attachment; filename="+ new String(fileN ame.getBytes("GB2312"),"ISO8859-1")); 37.// 设定输出文件头 38. response.setContentType("application/msexcel");// 定义输出类型 39.//定义输出流,以便打开保存对话框_______________________end 40. 41./** **********创建工作簿************ */ 42. WritableWorkbook workbook = Workbook.createWorkbook(os);

.Net 中导出数据到Excel

一、https://www.doczj.com/doc/de1081358.html,中导出Excel的方法: 在 https://www.doczj.com/doc/de1081358.html,中导出Excel有两种方法,一种是将导出的文件存放在服务器某个 文件夹下面,然后将文件地址输出在浏览器上;一种是将文件直接将文件输出流 写给浏览器。在Response输出时,t分隔的数据,导出Excel时,等价于分列,n等价于换行。 1、将整个 html全部输出Excel 此法将html中所有的内容,如按钮,表格,图片等全部输出到Excel中。 Response.Clear(); Response.Buffer= true; Response.AppendHeader("Content-Disposition","attachment;filename=" +DateTime.Now.ToString("yyyyMMdd")+".xls"); Response.ContentEncoding=System.Text.Encoding.UTF8; Response.ContentType = "application/vnd.ms-excel"; this.EnableViewState = false; 这里我们利用了ContentType属性,它默认的属性为text/html,这时将输出为 超文本,即我们常见的网页格式到客户端,如果改为ms-excel将将输出excel 格式,也就是说以电子表格的格式输出到客户端,这时浏览器将提示你下载保存。ContentType的属性还包括: image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword 。同理,我们也可以 输出(导出)图片、word文档等。下面的方法,也均用了这个属性。 2、将DataGrid控件中的数据导出Excel 上述方法虽然实现了导出的功能,但同时把按钮、分页框等html中的所有输出 信息导了进去。而我们一般要导出的是数据,DataGrid控件上的数据。System.Web.UI.Control ctl=this.DataGrid1; //DataGrid1是你在窗体中拖放的控件 HttpContext.Current.Response.AppendHeader("Content-Disposition","atta chment;filename=Excel.xls"); HttpContext.Current.Response.Charset ="UTF-8"; HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.Default; HttpContext.Current.Response.ContentType ="application/ms-excel"; ctl.Page.EnableViewState =false; System.IO.StringWriter tw = new System.IO.StringWriter() ; System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw); ctl.RenderControl(hw); HttpContext.Current.Response.Write(tw.ToString()); HttpContext.Current.Response.End(); 如果你的DataGrid用了分页,它导出的是当前页的信息,也就是它导出的是

.NET页面数据导出excel表方法

public void CreateExcel(DataSet ds,string typeid,string FileName) { HttpResponse resp; resp = Page.Response; resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName); string colHeaders= "", ls_item=""; int i=0; //定义表对象与行对像,同时用DataSet对其值进行初始化 DataTable dt=ds.Tables[0]; DataRow[] myRow=dt.Select(""); // typeid=="1"时导出为EXCEL格式文件;typeid=="2"时导出为XML格式文件if(typeid=="1") { //取得数据表各列标题,各标题之间以\t分割,最后一个列标题后加回车符for(i=0;i colHeaders+=dt.Columns[i].Caption.ToString()+"\t"; colHeaders +=dt.Columns[i].Caption.ToString() +"\n"; //向HTTP输出流中写入取得的数据信息 resp.Write(colHeaders); //逐行处理数据 foreach(DataRow row in myRow) { //在当前行中,逐列获得数据,数据之间以\t分割,结束时加回车符\n for(i=0;i ls_item +=row[i].ToString() + "\t"; ls_item += row[i].ToString() +"\n"; //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据 resp.Write(ls_item); ls_item=""; } } else { if(typeid=="2") { //从DataSet中直接导出XML数据并且写到HTTP输出流中 resp.Write(ds.GetXml()); } } //写缓冲区中的数据到HTTP头文件中 resp.End(); }

VB将数据导出到EXCEL

'************************************************************************* '** '** VB将数据导出到EXCEL,没有安装EXCEL的一样也可以导出. '** '** 调用方式: s_Export2Excel(Ado.Recordset) 或s_Export2Excel(Rds.RecordSet) '** 支持Rds 与Ado 的记录导出 '** '************************************************************************* '得到所有数据类型,有些数据类型EXCEL不支持,已经替换掉 Public Function f_FieldType$(ByVal sType&) Dim iRe$ Select Case sType Case 2, 3, 20 iRe = "int " Case 5 iRe = "float " Case 6 iRe = "money " Case 131 iRe = "numeric " Case 4 iRe = "real " Case 128 iRe = "binary " Case 204 iRe = "varbinary " Case 11 iRe = "bit " Case 129, 130 iRe = "char " Case 17, 72, 131, 200, 202, 204 iRe = "varchar " Case 201, 203 iRe = "text " Case 7, 135 iRe = "datetime " Case 205 iRe = "image " Case 128 iRe = "timestamp " End Select f_FieldType = iRe

C# 导出Excel 表

using System; using System.Collections.Generic; using https://www.doczj.com/doc/de1081358.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Reflection; using System.IO; namespace ExcelTest { public partial class frmMain : Form { public frmMain() { InitializeComponent(); } string[] ExcelColumTitle ={ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; int[] ExcelColumWidth ={10,15,15,12,12,12,20 };//各列宽度 private void btnOk_Click(object sender, EventArgs e) { this.Enabled = false;

Excel.Application excelKccx = new Excel.Application();//创建excel对象 excelKccx.Workbooks.Add(true);//创建excel工作薄 int row = 2; //把数据表的各个信息输入到excel表中 for (int i = 0; i < dataGridView1.Columns.Count; i++)//取字段名 { excelKccx.Cells[1, i + 1] = dataGridView1.Columns[i].Name.ToString(); } for (int i = 0; i < dataGridView1.Rows.Count; i++)//取记录值 { for (int j = 0; j < dataGridView1.Columns.Count; j++) { excelKccx.Cells[row, j + 1] = dataGridView1.Rows[i].Cells[j].Value.ToString(); } row++; } for (int i = 0; i < dataGridView1.Columns.Count; i++) { excelKccx.get_Range(ExcelColumTitle[i]+(i+1), Type.Missing).ColumnWidth =ExcelColumWidth[i] ; //宽度设置 } for (int i = 0; i <= dataGridView1.Rows.Count; i++) { excelKccx.get_Range("A" + (i + 1), Type.Missing).RowHeight = 14.25; //高度设置 } excelKccx.Visible = true;//使excel可见*/ } private void frmMain_Load(object sender, EventArgs e) { List list = new List(); string[] tempArray = Directory.GetFileSystemEntries(@"new\"); for (int i = 0; i < tempArray.Length; i++) { string tempLine = ""; string tempAll = ""; string tempA = "";//编号 string tempB = "";//所属人 string tempC = "";//概览

用Excel获取网页内容的方法

在浏览网页时,你一定会不时看到一些需要保存的数据信息。这些信息或许是一个完整的表格,或许是一段文字,如果要保存这类信息,我们常用的方法就是拖动鼠标,选中这些信息,然后用Ctrl+C组合键复制文字,然后再保存到Word、Excel当中去。 这样的步骤算不上麻烦,但如果要求你在一个个内容丰富的大网页(比如新浪、网易、Sohu首页)中频繁地复制、粘贴,一定会让你感到疲劳和浪费时间。有什么好办法呢?用“Ctrl+A”全选后复制所有文字?粘贴后你会发现麻烦更大,因为所有文字都堆在一起了!下面,理睬教你一种方便的方法。 实例:抓取新浪首页不同位置内容 第一步:打开IE,访问理睬博客首页https://www.doczj.com/doc/de1081358.html,/ 。 第二步:在网页左侧或右侧的空白处点击鼠标右键,在菜单中选择“导出到Microsoft Office Excel”。注意,不要在文字链接之间的空白处点右键,而是应该在完全没有任何网页内容的地方点右键。 第三步:这时Excel会启动,并出现一个“新建Web查询”的窗口。稍等片刻,等待这个窗口中显示出了完整网页,左下角会出现“完毕”字样。注意观察网页,你会发现网页被分割成了很多小的表格,每个表格的左上角有一个小的箭头标志。 第四步:双击窗口最上方标题栏,最大化窗口。依次找到要收藏的内容,然后按下该位置左上角的箭头,使它变成绿色的对勾。然后按下下方的“导入”按钮。 第五步:在弹出窗口中选择放置位置,然后按下“确定”按钮,文字、表格信息就可以自动导入Excel 了。字体格式、颜色自动处理为Excel默认的样式,表格也会被放到适当的单元格中。这样,就有效避免了直接复制粘贴网页造成一些无法识别的格式、链接信息加入网页,同时提高了导入速度。 你知道吗? 如何不将网页格式带入Office文档中? 当你在浏览器中复制一段内容,然后粘贴到Word、Excel中,会将一些网页格式直接照搬进来,这可能不是我们希望的,因为它会增大文件体积,也不利于加工整理。其实,你只要不用“Ctrl+V”来粘贴,而是选择Word、Excel中的“编辑→选择性粘贴→文本”来进行粘贴就可以了。

网页数据如何简单导出excel

https://www.doczj.com/doc/de1081358.html, 网页数据如何简单导出excel 在浏览网页时,遇到我们需要的网页数据时,如文字、图片等,如何能简单的导出到Excel 中,方便在本地电脑中查看和编辑呢?当然是有办法的啦!下面就为大家介绍几种简单快速的将网页数据导出到Excel的方法,大家可以灵活运用。 一、通过浏览器导出网页数据 具体操作:打开某网页后,右键点击网页空白处,在下拉列表中选择“另存为”,然后在弹出的保存窗口中选择保存类型为“网页全部”。选择保存位置后确定,保存后就会自动保存两个文件,一个是网址,另一个是保存网页内容元素。 如何导出网页数据,以赶集网采集为例图1

https://www.doczj.com/doc/de1081358.html, 二、通过网页数据采集器导出网页数据 先通过网页数据采集器,将网页数据采集下来,然后再导出为需要的格式即可。本文使用的是操作简单、功能强大的八爪鱼采集器。以下是一个八爪鱼采集并导出网页数据的完整示例。示例中采集的是赶集网上房产-商铺-深圳-南山分类下的所有商铺信息。 示例网站:https://www.doczj.com/doc/de1081358.html,/fang6/nanshan/ 步骤1:创建采集任务 1)进入主界面,选择“自定义模式” 如何导出网页数据,以赶集网采集为例图2 2)将要采集的网址URL,复制粘贴到网址输入框中,点击“保存网址”

https://www.doczj.com/doc/de1081358.html, 如何导出网页数据,以赶集网采集为例图3 步骤2:创建翻页循环 1)在页面右上角,打开“流程”,以展现出“流程设计器”和“定制当前操作”两个板块。将页面下拉到底部,点击“下一页”按钮,在右侧的操作提示框中,选择“循环点击下一页”

DataGrid导出EXCEL的几个方法(WebControl)

DataGirdμ?3?EXCELμ?????·?·¨£¨WebControl£? using System; using System.Data; using System.Text; using System.Web; using System.Web.UI; using System.Diagnostics; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using System.Collections; namespace bookstore { ///

/// myExcel μ??aòa?μ?÷?£ /// public class myExcel { public myExcel() { } /// /// ??DATAGRIDμ?3??aEXCEL???t·?·¨ò?, /// 2?êyê?:òaμ?3?μ?DATAGRIDμ?IDoíòa±£′???à′μ?EXCEL???t?? /// /// page /// datagrid /// filename private void OutExcel(Page myPage,DataGrid dg,string name) { HttpResponse Response; Response=myPage.Response; string name1="attachment;filename="+name+".xls"; dg.Visible=true;

把MSHFlexGrid里数据导出至Excel

如何把MSHFlexGrid里的数据导出至Excel? 用Adodc1做了查询语句,结果显示在一个MSHFlexGrid里面。现在要求做一个按钮(Command1),点击它就把MSHFlexGrid里显示的数据导出至Excel表中。就是一点这个按钮,就会自动打开Excel,然后数据就已经进去了,方便编辑和打印。 要求:代码详细,直接复制到Command1下就能用。这块我不懂,所以不要搞什么子程序调用之类的,要有子程序也给直接调用好。 直接复制代码成功后,再追加100分。把这个弄完工程就结了,再不用受罪了,哈哈! 以下是精简后的代码,不清楚你工作中的一些细节,所以如有问题与我讨论 Private Sub Command1_Click() MSFlexGrid1.Redraw = False '关闭表格重画,加快运行速度 Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象 Set xlBook = xlApp.Workbooks.Open(App.Path & "\对账模板.xls") '打开已经存在的EXCEL 工件簿文件 xlApp.Visible = True '设置EXCEL对象可见(或不可见) Set xlsheet = xlBook.Worksheets("Sheet1") '设置活动工作表 For R = 0 To MSFlexGrid1.Rows - 1 '行循环 For C = 0 To MSFlexGrid1.Cols - 1 '列循环 MSFlexGrid1.Row = R MSFlexGrid1.Col = C xlBook.Worksheets("Sheet1").Cells(R + 1, C + 1) = MSFlexGrid1.Text '保存到EXCEL Next C Next R MSFlexGrid1.Redraw = True 'xlsheet.PrintOut '打印工作表 xlApp.DisplayAlerts = False '不进行安全提示 'xlBook.Close (False) '关闭工作簿 Set xlsheet = Nothing Set xlBook = Nothing xlApp.Quit Set xlApp = Nothing End Sub

html导出excel的方法(简单)

html导出excel的方法(简单) 在html实现打印和导出excel的实现: 2006/11/05 01:54 P.M. 在所要打印和导如的EXCES的table 加个如 id = "PrintA" 在打印按纽上注册监听如:onclick="javascript:AllAreaWord(); 在加上如下内容: