C# dt导出excel 生成多个sheet!

问题描述

问题是这样的。我从数据库里查询到几条数据,返回一个datatable。通过循行,生成一个<table></table>的html格式的字符串。然后通过下面:System.Web.HttpContextcurContext=System.Web.HttpContext.Current;StringWritersw=newStringWriter();sw.WriteLine("<htmlxmlns:x="urn:schemas-microsoft-com:office:excel">");sw.WriteLine("<head>");sw.WriteLine("<!--[ifgtemso9]>");sw.WriteLine("<xml>");sw.WriteLine("<x:ExcelWorkbook>");sw.WriteLine("<x:ExcelWorksheets>");sw.WriteLine("<x:ExcelWorksheet>");sw.WriteLine("<x:Name>数据报表</x:Name>");sw.WriteLine("<x:WorksheetOptions>");sw.WriteLine("<x:Print>");sw.WriteLine("<x:ValidPrinterInfo/>");sw.WriteLine("</x:Print>");sw.WriteLine("</x:WorksheetOptions>");sw.WriteLine("</x:ExcelWorksheet>");sw.WriteLine("</x:ExcelWorksheets>");sw.WriteLine("</x:ExcelWorkbook>");sw.WriteLine("</xml>");sw.WriteLine("<![endif]-->");sw.WriteLine("</head>");sw.WriteLine("<body>");sw.WriteLine(sb.ToString());sw.WriteLine("</body>");sw.WriteLine("</html>");HttpContext.Current.Response.Clear();HttpContext.Current.Response.Buffer=true;HttpContext.Current.Response.AppendHeader("content-disposition","attachment;filename="+HttpUtility.UrlEncode(fileName,Encoding.UTF8).ToString()+".xls");curContext.Response.Write("<metahttp-equiv=Content-Typecontent=text/html;charset=gb2312>");curContext.Response.ContentEncoding=System.Text.Encoding.GetEncoding("gb2312");//返回客户端curContext.Response.Write(sw);sw.Close();sb就是上面拼接的字符串变量。现在想实现一条数据生成一个sheet,就是一个excel包含多个sheet。该如何在此基础上修改?

解决方案

解决方案二:
其实就是导出excel的一个问题。初学者,求指导。详细点更好!
解决方案三:
没有人吗?帮忙顶下
解决方案四:
同求解决方法,我在<x:ExcelWorksheets>中放置多个<x:ExcelWorksheet>,能生成多个sheet页,但如何在其他sheet中放入内容呢。
解决方案五:
参考
解决方案六:
用第三方org.in2bits.MyXls非常方便,不需要安装office
解决方案七:
完全符合你的要求
解决方案八:
引用楼主sai_shuang的回复:

现在想实现一条数据生成一个sheet,就是一个excel包含多个sheet。该如何在此基础上修改?

无法在此基础上修改。这个东西根本就只能弄个最简单的table,没有任何多一点的Excel格式、公式、单元格样式等技术,更没有WorkbookSheet概念。要想输出excel,你就应该使用真正面对excel的编程方式。而不是这种。
解决方案九:
WorkbookSheet-->Worksheet生成xml格式当然是可以得到复杂的excel工作簿的。但是你花时间掌握了excelxml了吗?从csdn上无法得到好的答案。而如果你要对excel编程,最好调用封装好的excelCOM编程api。这就好像你编写c#程序,而不是直接写0、1、0、1代码一样,对于excel编程优先使用api接口库去操作,而不是直接编辑xml。
解决方案十:
http://blog.csdn.net/mh942408056/article/details/7297572?reload
解决方案十一:
openxml,aspose,epplus,npoi,com组建欢迎你
解决方案十二:
Excel文件创建多个工作表privatevoid打开Excel文件ToolStripMenuItem_Click(objectsender,EventArgse){OpenFileDialog.Filter="Excel文件|*.xls";//设置打开文件筛选器OpenFileDialog.Title="打开Excel文件";//设置打开对话框标题OpenFileDialog.Multiselect=false;//设置打开对话框中不能多选if(OpenFileDialog.ShowDialog()==DialogResult.OK)//判断是否选择了文件{M_str_Name=OpenFileDialog.FileName;//记录选择的Excel文件WBrowser_Excel.Navigate(M_str_Name);//在窗体中显示Excel文件内容}}privatevoid创建工作表ToolStripMenuItem_Click(objectsender,EventArgse){CloseProcess();//关闭Excel进程Microsoft.Office.Interop.Excel.Applicationexcel=newMicrosoft.Office.Interop.Excel.Application();//实例化Excel对象objectmissing=Missing.Value;//获取缺少的object类型值//打开指定的Excel文件Microsoft.Office.Interop.Excel.Workbookworkbook=excel.Application.Workbooks.Open(M_str_Name,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);Microsoft.Office.Interop.Excel.WorksheetnewWorksheet=(Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets.Add(missing,missing,1,missing);MessageBox.Show("添加工作表成功","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);excel.Application.DisplayAlerts=false;//不显示提示对话框workbook.Save();//保存工作表workbook.Close(false,missing,missing);//关闭工作表WBrowser_Excel.Navigate(M_str_Name);//在窗体中显示Excel文件内容}
解决方案十三:
npoi这个很好用,怎么定义都可以,我也刚做了这个导出多个SHEET的
解决方案十四:
NPOI强烈推荐。

时间: 2024-01-31 18:30:08

C# dt导出excel 生成多个sheet!的相关文章

jsp导出excel并支持分sheet导出的方法_JSP编程

本文实例讲述了jsp导出excel并支持分sheet导出的方法.分享给大家供大家参考,具体如下: public DownloadFile exportToExcel() throws Exception{ String config_value = systemConfigService.getConfigValueByKey("Export.Xls"); logger.info("获取的导出类型为execl表格"+",每页sheet导出的行数为:&quo

devexpress-DevExpress控件在导出Excel时怎么分成Sheet表来导出

问题描述 DevExpress控件在导出Excel时怎么分成Sheet表来导出 DevExpress控件在导出Excel时用的是 Printingsystem的导出ExportToXls方法导出的,只能将整个界面按一个Excel工作表来导出!! 界面上有三个grid(每一个加载一个界面作为数据控件),我想要做的是在导出的时候,每一个控件导出一个工作表,在一个Excel工作薄里面,,导出报表的格式按,控件显示的格式来,不知道各位大神有什么办法没有,,小弟在这里跪求了,,,谢谢每一位出主意的好心人

java导出excel 用模板如何分sheet

问题描述 java导出excel 用模板如何分sheet 当导出的excel 数据很多时,导出到模板的数据怎么自动创建多个sheet ,并导出到多个sheet中, 我是使用了模板,导出数据到excel 里,但是不知道,怎么分sheet.,肯能很麻烦,知道的哥哥姐姐迪迪妹妹,可以告诉我,感谢 解决方案 java操作Excel的工具POI中有创建Sheet的方法的,查下API,对着需求调用就行了. 解决方案二: POI下JAVA导出基于模板的Exceljava 导出数据到指定的excel模板中.ja

nopi导出到Excel不支持多sheet吗?

问题描述 我导出数据到指定模板excel,模板的Excel中有10几个sheet,我前几个sheet都正常,但第5个sheet后就无法往里写数据了.sheet1=hssfworkbook.GetSheet(ksmc);//选中对应科室名称的sheet,写入相应数据//抬头sheet1.GetRow(2).GetCell(6).SetCellValue("实际值"+khrq);for(introw=firstrow;row<=rownum;row++){indexid=GetInd

Java程序实现导出Excel的方法(支持IE低版本)_java

今天想整理一下自己前段时间遇到的一个导出的问题. 因为项目的需求,要做一部分导出功能.开始的时候用的公司的导出,但是很奇怪有部分模块导出的时候就是会报500错误,发现在删减一些字段后就恢复了正常,当时因为项目紧张,也就临时删减了一些,但也不是长久之计,之后自己在原本的基础上重新修改整理了一下,目前运行还算稳定,就此和大家分享一下. 导出需要三个部分,js,公共方法,后台方法. js代码 function exportData() { //前台接收的参数 rwmc = $("#txt_rwmc&q

求助:请教一个DataTable导出excel的难题

问题描述 在用winform将DataTable导出excel文件时,遇到一个难题,请教大家帮看看怎么回事:窗体Shown的事件中调用AutoExecute是正常的,生成了excel文件.但是此时再点击窗体上的按钮button调用AutoExecute()方法,代码执行到了这地方:_Workbookwbk=wbook.Add(Missing.Value);就没反应了,没报错.[DllImport("User32.dll",CharSet=CharSet.Auto)]publicstat

导出EXCEL表格时 如何优化代码适应大数据量

问题描述 网站后台代码数据量不大或者逻辑不复杂的情况下秒导一旦数据量超过W或者逻辑复杂就容易浏览器未响应不知道该如何优化下有过经验的给点思路publicActionResultExportByExcel(){List<Vinotes.Model.GrapeType>list=WServices.GrapeTypeList(0).ToList();IWorkbookworkbook=newHSSFWorkbook();ISheetsheet=workbook.CreateSheet("

JAVA导出EXCEL并下载

JAVA导出EXCEL并下载 一 ,流程大致如下 1.JSP页面点击按钮 2.点击导出excel按钮 3.点击确定按钮 (1)在谷歌浏览器中会直接下载 (2)在ie浏览器会提示保存路径 4.最后下载保存到本地,打开Excel表格,效果如下. 二,下面来看具体代码 前端js代码 function exportExcel() { $.messager.confirm('确认', '确认把该搜索结果导出Excel表格 ?', function(r) { if (r) { var startTime =

asp.net里导出excel表方法汇总

asp.net|excel|导出excel 1.由dataset生成 public void CreateExcel(DataSet ds,string typeid,string FileName) { HttpResponse resp; resp = Page.Response; resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); resp.AppendHeader("Content-Di