博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# DataTable下载
阅读量:5045 次
发布时间:2019-06-12

本文共 5122 字,大约阅读时间需要 17 分钟。

从服务器下载datatable到本地,有多种处理方式,下面介绍三种。

方式一,将datatable转为txt下载。

步骤:

1.将datatable内容下载到服务器txt中

2.将服务器的txt下载到本地来

3.删除服务器上的txt

方式二,datatable绑定到控件GridView后下载

步骤:

1.关闭控件分页功能并绑定数据到控件

2.下载控件内容到本地

3.打开控件分页功能并重新绑定数据

方式三,datatable转为Excel下载

步骤:

1.将datatable内容下载到服务器Excel中

2.将服务器中的Excel下载到本地

3.删除服务器上的Excel

如果大家有其他好的方式,不妨分享下,最好有源码,哈哈哈~~~~

//datatable转为txt public void DataTableToTxt(string filePath,DataTable ds) {            FileStream fs = new FileStream(filePath, FileMode.Create);            StreamWriter sw = new StreamWriter(fs);            //开始写入            for (int j=0; j < ds.Columns.Count; j++) {                sw.Write(ds.Columns[j].ColumnName);                sw.Write("\t");            }            sw.Write("\r\n");                for (int i = 0; i < ds.Rows.Count; i++)                {                    for (int j = 0; j < ds.Columns.Count; j++)                    {                        sw.Write(ds.Rows[i][j].ToString() == " " ? "" : ds.Rows[i][j].ToString());                        sw.Write("\t");                    }                    sw.Write("\r\n");                }            //清空缓冲区            sw.Flush();            //关闭流            sw.Close();            fs.Close();        }
//下载控件内容public void GridviewToExcel(Control control, string FileType, string FileName)        {            HttpContext.Current.Response.Charset = "GB2312";//设置了类型为中文防止乱码的出现             HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");//注意编码            HttpContext.Current.Response.AppendHeader("Content-Disposition",                 "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8).ToString());//将http头添加到输出流            HttpContext.Current.Response.ContentType = FileType;//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword             control.Page.EnableViewState = false;//服务器端只做出一次响应            StringWriter tw = new StringWriter();//实现将信息写入字符串(下面的信息会写到这里)            HtmlTextWriter hw = new HtmlTextWriter(tw);//用于将标记字符和文本写入到ASP.NET服务器控件输出流            control.RenderControl(hw);//将服务器控件的内容输出到所提供的 HtmlTextWriter 对象中                   HttpContext.Current.Response.Write("
"); HttpContext.Current.Response.Write(tw.ToString()); HttpContext.Current.Response.Write(""); HttpContext.Current.Response.End(); }//调用GridviewToExcel(grd, "application/vnd.ms-excel.numberformat:@", "xx.xls");
//datatable 转excelpublic void DataTabletoExcel(System.Data.DataTable tmpDataTable, string strFileName)        {            if (tmpDataTable == null)                return;            int rowNum = tmpDataTable.Rows.Count;            int columnNum = tmpDataTable.Columns.Count;            int rowIndex = 1;            int columnIndex = 0;            Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();            xlApp.DefaultFilePath = "";            xlApp.DisplayAlerts = true;            xlApp.SheetsInNewWorkbook = 1;            Microsoft.Office.Interop.Excel.Workbook xlBook = xlApp.Workbooks.Add(true);            Microsoft.Office.Interop.Excel.Worksheet xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlBook.ActiveSheet;            //将DataTable的列名导入Excel表第一行            foreach (DataColumn dc in tmpDataTable.Columns)            {                columnIndex++;                xlApp.Cells[rowIndex, columnIndex] = dc.ColumnName;            }            //将DataTable中的数据导入Excel中            xlSheet.Range[xlSheet.Cells[1, 1], xlSheet.Cells[rowNum + 1, columnNum+1]].NumberFormatLocal = "@";//将格式设置成文本            for (int i = 0; i < rowNum; i++)            {                              rowIndex++;                columnIndex = 0;                for (int j = 0; j < columnNum; j++)                {                    columnIndex++;                    xlApp.Cells[rowIndex, columnIndex] = tmpDataTable.Rows[i][j].ToString();                }            }                //xlBook.SaveCopyAs(HttpUtility.UrlDecode(strFileName, System.Text.Encoding.UTF8));            xlBook.SaveCopyAs(strFileName);        }DataTabletoExcel(ds, Server.MapPath("") + "\\xx.xlsx");
//文件下载 参数 文件名  文件路径 public void DownFileToLocal(string FileName,string FilePath) {            FileInfo fileInfo = new FileInfo(FilePath);            HttpContext.Current.Response.Clear();            HttpContext.Current.Response.ClearContent();            HttpContext.Current.Response.ClearHeaders();            HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + FileName);            HttpContext.Current.Response.AddHeader("Content-Length", fileInfo.Length.ToString());            HttpContext.Current.Response.AddHeader("Content-Transfer-Encoding", "binary");            HttpContext.Current.Response.ContentType = "application/octet-stream";            HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");            HttpContext.Current.Response.WriteFile(fileInfo.FullName);            HttpContext.Current.Response.Flush();            HttpContext.Current.Response.End();        }

 

转载于:https://www.cnblogs.com/zyskr/p/10730222.html

你可能感兴趣的文章
mysql 安装
查看>>
JS 和 Jq 获取客户端各种屏幕宽度和高度
查看>>
2017.10.2 国庆清北 D2T1 (a*b)|x
查看>>
spring mvc json 问题
查看>>
设备对象
查看>>
Linux-Crontab服务
查看>>
HDU 2087 剪花布条 KMP极其初级之入门题(KMP模板在这里)
查看>>
VS2012变化的快捷键
查看>>
python数据类型及相关操作
查看>>
设计模式之- 代理模式(Proxy Pattern)
查看>>
React Navigation基本用法
查看>>
JQuery_004_触发事件
查看>>
iOS开发(Objective-C)常用库索引
查看>>
[源码和文档分享]基于C#和SQL SERVER的校园知识问答论坛网站的设计与实现
查看>>
面向对象基础项目----图书管理系统(数组)
查看>>
BZOJ 3731 3731: Gty的超级妹子树 [树上size分块 !]
查看>>
BZOJ 2049: [Sdoi2008]Cave 洞穴勘测 [LCT]
查看>>
ubuntu15.10安装搜狗拼音输入法
查看>>
低调发布一个百度谷歌关键字搜索工具
查看>>
js函数的节流与防抖
查看>>