1

我目前在我的应用程序中有一个选项可以导出到 Excel。它将数据保存到磁盘中的文件中。

我想打开 Excel 并显示数据。你们有谁知道这是否可能以及如何实现?

我想我可以打开已经保存到磁盘的文件,但最好不要将文件保存到磁盘。

4

3 回答 3

2

我假设您正在使用互操作。只需将应用程序设置为可见。

excelApp.Visible = true;

在哪里

InteropExcel.Application excelApp;

只要记住仍然释放所有 COM 引用,这样您的应用程序就不会同时拥有 Excel 的句柄。这可能会导致您的 Excel 文件是只读的。

于 2013-08-22T22:29:02.947 回答
1

您目前如何创建文件?

如果您使用 Excel 引擎或 POI(或它们的缩写)来创建 XLS / XLSX,这只是不保存工作簿并使实例可见(如上所述)的情况吗?

如果您不依赖或不想依赖 Excel(即使用 Syncfusion 等第三方库来创建文件)或只是以 CSV 等 excel 可读格式输出数据,那么我想您会遇到困难基于文件的操作...

至于临时文件比未保存的文件更容易......数据需要在任何一种情况下创建,无论是简单的CSV还是Excel单元格的编码群体,所以我不太明白这是什么意思。

于 2013-08-22T22:40:23.307 回答
0

参考下面的代码打开excel而不保存

    System.Web.HttpContext.Current.Response.Clear();
    System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=DateTime.Now + ".xls");
    System.Web.HttpContext.Current.Response.Charset = "";

    Response.Cache.SetCacheability(HttpCacheability.NoCache);  // If you want the option to open the Excel file without saving than       

    System.Web.HttpContext.Current.Response.ContentType = "application/vnd.xls";
    System.IO.StringWriter stringWrite = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);        
    Gridview1.RenderControl(htmlWrite);


    //style to format numbers to string
    string style = @"<style> .textmode { } </style>";
    System.Web.HttpContext.Current.Response.Write(style);
    System.Web.HttpContext.Current.Response.Output.Write(stringWrite.ToString());
    System.Web.HttpContext.Current.Response.Flush();
    System.Web.HttpContext.Current.Response.End();  
于 2013-08-23T05:08:02.917 回答