使用getJSON返回Excel电子表格
Return Excel Spreadsheet using getJSON
所以我有了这个方法:
public Microsoft.Office.Interop.Excel.Worksheet createDoc()
{
try
{
app = new Microsoft.Office.Interop.Excel.Application();
app.Visible = true;
workbook = app.Workbooks.Add(1);
worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Sheets[1];
}
catch (Exception e)
{
Console.Write("Error");
}
finally
{
}
return worksheet;
}
我需要能够返回此工作表并将其附加到我的视图中的html iframe。我在Visual Studio中使用MVC4。这是代码,我一直使用到目前为止,以获得JSONResults,但我从来没有处理过这个。
$.getJSON("/exceldocumentmethod", function (results) {
});
任何建议吗?
不应该使用JSON。您应该有一个控制器动作,它将Excel文件直接返回给具有适当Content-Type和Content-Disposition头的响应。然后将iframe
的src
指向这个控制器动作。不要使用任何$.getJSON
方法,它们不会帮助你。
例如,你可以有以下iframe:
<iframe src="@Url.Action("ExcelDoc", "Home")"></iframe>
和你的ExcelDoc动作可能看起来像这样:
public ActionResult ExcelDoc()
{
var doc = Server.MapPath("~/App_Data/example.xls");
return File(doc, "application/vnd.ms-excel");
}
,对于Excel2007及以上版本的。xlsx文件,正确的Content-Type为application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
。
我还注意到你正在使用Excel互操作在服务器上动态生成文档。该库依赖于安装在服务器上的Excel,而不是设计用于web应用程序(服务器环境)。不要用它。如果要在服务器上动态生成Excel文件,可以使用Open XML SDK
。以下是example on MSDN
如何使用此SDK生成Excel电子表格。
相关文章:
- Google电子表格getValue([cell containing ])不返回制表符
- 区分电子表格中的空单元格和0值
- 使用外部数据创建仪表板(谷歌电子表格)-JavaScript
- 如何使用Google Sheets API+Javascript阅读电子表格
- 谷歌电子表格的自定义xml解析功能
- SIMPLE Javascript代码,用于显示谷歌电子表格中单个字段的数据
- 在谷歌电子表格中循环单元格
- 如果填写了特定值,则通过电子邮件发送电子表格中的数据
- 使用AngularJS制作一个类似电子表格的应用程序
- 有没有一种方法可以使用Javascript检索谷歌表单ITSELF(而不是电子表格)的数据
- 使用谷歌应用程序脚本制作基于谷歌电子表格的带有列表框的网络应用程序
- 使用公共API访问(无OAuth)从JavaScript编写Google电子表格
- 如何对excel电子表格进行排序(KENDO UI)
- 如何从HTML表格导出到excel电子表格
- 在Excel电子表格中运行JQuery地理定位脚本
- 事件的顺序在asp经典时,生成excel电子表格
- 使用getJSON返回Excel电子表格
- 将(大量加载公式的)Excel电子表格转换为用户友好的网络计算器
- 如何将表格复制到Excel或谷歌电子表格
- 减少在类似HTML excel的电子表格中更新单元格时的延迟