C#是可以直接用EXCEL 做数据源的和数据库操作差不多。
详情见Google
新建 HSSFWorkbook ,循环表格,根据个数添加 ISheet 再在ISheet里面绑定你要的数据
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbooks workbooks = excelApp.Workbooks; Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); //下面的代码获取的是第一个sheet,通过索引获取更多。 Microsoft.Office.Interop.Excel.Worksheet worksheet = workbook.Worksheets[1];
我不想引用 组件,我直接response
string head1 = "<head><META http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">"
+ "<!--[if gte mso 9]><xml>"
+ "<x:ExcelWorkbook>"
+ "<x:ExcelWorksheets>"
+ "<x:ExcelWorksheet>"
+ "<x:Name>第一个</x:Name>"
+ "<x:WorksheetOptions>"
+ "<x:Print>"
+ "<x:ValidPrinterInfo/>"
+ "</x:Print>"
+ "</x:WorksheetOptions>"
+ "</x:ExcelWorksheet>"
+ "<x:ExcelWorksheet>"
+ "<x:Name>第二个</x:Name>"
+ "<x:WorksheetOptions>"
+ "<x:Print>"
+ "<x:ValidPrinterInfo/>"
+ "</x:Print>"
+ "</x:WorksheetOptions>"
+ "</x:ExcelWorksheet>"
+ "</x:ExcelWorksheets>"
+ "</x:ExcelWorkbook>"
+ "</xml></head>"
+ "<![endif]-->";
可以的,通过流输出的方式。在服务器端用html拼一个table。通过设置Response.ContentType = "application/ms-excel;charset=UTF-8";是可以生成Excel的。但是如果数据量超过65536行怎么分sheet我就不知道。
我们一般用npoI,这个在导出Excel应用中比较通用,而且该开源项目也一直在维护中,最新版本的NPOI支持office2007以上版本。
具体方法百度一下:“asp.net导出表格” 你可以得到答案。
效果可以实现,不过你得写好多代码.原理就是用response.write输出html标签,并且在语句中嵌入你在后台读出的数据.比如dataset.tables[0].rows[0][0]
可以尝试用插件试试,毕竟简单么,省不少事儿,可以试试用PageOffice插件。