我有一个生成报告的asp.net页面。好的或不好的是,整个页面都是使用嵌套表格生成的。我能导出这个页面到Excel,但是我失去了所有的格式(无法设置列宽等)。有办法处理这个问题吗?我可以在html一侧添加任何幼稚的MS Office特定标记。
如果这不可行,或者有其他任何想法,要求是用户需要一份报告:
他们可以手动添加个性化/区域特定数据进行修整。
根据用户位置需要隐藏/显示列。
c) 需要在网站上运行。
任何帮助或建议备选方法的推荐都将不胜感激。
Thanks Joe
我有一个生成报告的asp.net页面。好的或不好的是,整个页面都是使用嵌套表格生成的。我能导出这个页面到Excel,但是我失去了所有的格式(无法设置列宽等)。有办法处理这个问题吗?我可以在html一侧添加任何幼稚的MS Office特定标记。
如果这不可行,或者有其他任何想法,要求是用户需要一份报告:
他们可以手动添加个性化/区域特定数据进行修整。
根据用户位置需要隐藏/显示列。
c) 需要在网站上运行。
任何帮助或建议备选方法的推荐都将不胜感激。
Thanks Joe
不幸的是,你实际上没有第三方工具。
如果最终用户已知使用Office 2007或更高版本,则可以使用Open XML格式。
微软开放式XML
如果您选择第三方途径,通常会非常昂贵,至少需要130美元。
请查看该 Stack Overflow 线程。
如何在服务器上读取 MS Office 文件,而不安装 MS Office 并且不使用 Interop Library?
虽然您可以在导出之前在您的代码中隐藏/显示列以操纵列,但这并不是一个大问题,只是外观和感觉的格式会变得困难。
SpreadsheetGear for .NET 将使您能够从ASP.NET生成格式化的Excel工作簿。
您可以在此处查看我们的实时ASP.NET示例,链接,也可以在此处下载免费试用版,链接。
声明:我拥有SpreadsheetGear LLC。
以下代码对我来说有效,并保留所有表格格式。 源HTML表需要具有runat ="Server"属性和id才能正常工作。
基本上,它创建一个新的(虚拟)表单,其中仅包含您的表,并将其写入Excel文件中。 如果您使用Excel 2007,则会出现让人烦恼的错误消息“您正在尝试打开的文件与扩展名指定的格式不同”,但您可以安全地忽略它,并说“是”,您想打开它。
Public Sub exportTableExcel(ByVal aTable, ByVal filename)
Dim sw As New StringWriter()
Dim htw As New HtmlTextWriter(sw)
HttpContext.Current.Response.ClearContent()
HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" & filename)
HttpContext.Current.Response.ContentType = "application/vnd.xls"
HttpContext.Current.Response.Charset = ""
Create a form to contain the table
Dim frm As New HtmlForm()
aTable.Parent.Controls.Add(frm)
frm.Attributes("runat") = "server"
prevent additional code from being exported
frm.attributes("maintainScrollPositionOnPostBack") = "false"
frm.Controls.Add(aTable)
frm.RenderControl(htw)
HttpContext.Current.Response.Write(sw.ToString())
HttpContext.Current.Response.End()
frm.Dispose()
htw.Dispose()
sw.Dispose()
End Sub
In my webpages I have references to js and images as such: "../../Content/Images/"Filename" In my code if I reference a file as above, it doesnt work so i have to write: "c:/miscfiles/"filename" 1-...
I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...
Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...
I m looking for best practices here. Sorry. I know it s subjective, but there are a lot of smart people here, so there ought to be some "very good" ways of doing this. I have a custom object called ...
I am implementing Transaction using TransactionScope with the help this MSDN article http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx I just want to confirm that is ...
i have the following base controller... public class BaseController : Controller { protected override void Initialize(System.Web.Routing.RequestContext requestContext) { if (...
For what it is necessary Microsoft.Contracts namespace in asp.net? I mean, in what cases I could write using Microsoft.Contracts;?
I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!