繼續關於生成Excel文件的問題,我需要能夠在webform應用程序位於遠程Web服務器上時在本地創建文件。這不是我之前處理過的任何事情,所以我很難發現要問什麼。我正在使用c#在VS2010上使用WebForms。 eanderson指向我的方向 Simplexcel由Michael Stum似乎做的伎倆,但該文件是在服務器上生成(或者我應該說'試圖',因爲它是不允許的!ASP.Net webform生成的Excel文件到本地PC而不是服務器
回答
你應該可以做類似的事情來生成和下載Excel Sheet
。
protected void generateExcelSheet_click(object sender, EventArgs e)
{
// Create Excel Sheet
var sheet = new Worksheet("Hello, world!");
sheet.Cells[0, 0] = "Hello,";
sheet.Cells["B1"] = "World!";
var workbook = new Workbook();
workbook.Add(sheet);
// Save
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("Content-Disposition", "attachment; filename=MyExcelSheet.xls");
workbook.Save(Response.OutputStream, CompressionLevel.Maximum);
Response.End();
}
在designer.aspx
:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="FileDownload.Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="btnExcel" runat="server" Text="Download Excel Sheet" onclick="generateExcelSheet_click" />
</form>
</body>
</html>
我基於this教程此代碼。
這太好了,謝謝@eanderson。我需要解決的唯一問題是,當我打開文件時,我收到一條消息:「您打算打開的文件」MyExcelSheet.xls「的格式與文件擴展名指定的格式不同。在打開文件之前,驗證該文件是否已損壞並且來自受信任的來源。你想現在打開文件嗎?如果我說是,文件打開罰款。這是一個安全問題,因爲我無法看到文件擴展名的問題? – 2013-03-23 17:35:28
嘗試將content-type改爲'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'或看看http://www.webmaster-toolkit.com/mime-types.shtml他們提到了四種不同的內容類型可以嘗試。 – eandersson 2013-03-23 17:37:10
對不起,這給出了相同的結果。 – 2013-03-23 17:40:33
- 1. 如何通過服務器控件生成完整的ASP.Net Webform?
- 2. 從本地PC遷移到服務器
- 3. Webform生成器?
- 4. 產生很好的格式化在ASP.net Excel文件,而不對服務器
- 5. C#將文件保存到服務器而不是本地文件夾
- 6. 錯誤活的服務器上,而不是本地服務器
- 7. WCF調用本地Windows服務而不是服務器的
- 8. 未安裝Excel的服務器上的Excel文件生成
- 9. ASP.Net服務器遷移本地生存
- 10. Browsersync服務本地文件而不是遠程文件
- 11. 保存從HTML生成EXCEL文件到服務器ASP
- 12. 從本地服務器上的asp.net找到網絡PC名稱和IP地址?
- 13. 寫作的FileStream到本地路徑,而不是服務器
- 14. Asp.net C#Webform的形成產生器/生成器
- 15. 寫一個文件到Web服務器,而不是本地目錄
- 16. 從遠程服務器到本地服務器的Sftp文件
- 17. CompareValidator工作本地PC上,而在服務器
- 18. 如何在Eclipse項目中包含來自遠程服務器的文件而不復制到本地PC?
- 19. 我的Node.js服務器如何知道它是生產而不是本地的?
- 20. 從ASP.NET頁面下載EXCEL文件,而無需在服務器上生成物理文件
- 21. 使用PC上的主機文件訪問服務器而不是互聯網
- 22. asp.net自動生成的文本框在webform上的ID
- 23. php和javascript不能發佈文件到遠程服務器,而發佈到本地服務器的工作
- 24. 我的ASP.NET頁面的Web服務器上,而不是本地主機
- 25. 如何將文件從服務器複製到本地PC在Python中?
- 26. 如何從服務器做一個文件夾複製到本地PC
- 27. 配置生成器生成.scss文件而不是CSS
- 28. 服務器上的Windows身份驗證問題,但不是從本地PC
- 29. ASP.NET生產服務器PDB文件
- 30. CSS作爲本地主機而不是服務器地址
您不能在TEMP文件夾中生成excel文件,然後將其流式傳回嗎?我們首先嚐試解決文件生成問題......您能否顯示保存到特定文件的代碼行? – rene 2013-03-23 16:36:03
創建文件不是問題,它是在本地保存的,因爲我不能在服務器上。我的代碼是'var sheet = new Worksheet(「Hello,world!」); sheet.Cells [0,0] =「你好,」; sheet.Cells [「B1」] =「世界!」; var workbook = new Workbook(); workbook.Add(sheet); (@「C:\ Users \ peter \ Documents \ VS 2010 Projects \ ExcelOutput2 \ www \ test.xlsx」);' – 2013-03-23 16:49:24