繼續關於生成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. Webform生成器?
- 3. 產生很好的格式化在ASP.net Excel文件,而不對服務器
- 4. 未安裝Excel的服務器上的Excel文件生成
- 5. ASP.Net服務器遷移本地生存
- 6. 從本地服務器上的asp.net找到網絡PC名稱和IP地址?
- 7. 寫作的FileStream到本地路徑,而不是服務器
- 8. Asp.net C#Webform的形成產生器/生成器
- 9. 從遠程服務器到本地服務器的Sftp文件
- 10. 如何在Eclipse項目中包含來自遠程服務器的文件而不復制到本地PC?
- 11. 我的Node.js服務器如何知道它是生產而不是本地的?
- 12. php和javascript不能發佈文件到遠程服務器,而發佈到本地服務器的工作
- 13. asp.net自動生成的文本框在webform上的ID
- 14. 如何從服務器做一個文件夾複製到本地PC
- 15. 我的ASP.NET頁面的Web服務器上,而不是本地主機
- 16. CSS作爲本地主機而不是服務器地址
- 17. WordPress的* get_current_user_id *遠程服務器而不是本地服務器上返回0
- 18. 無法在服務器上生成excel文件
- 19. ASP.NET - 本地和生產服務器 - 控件ID差異
- 20. 在本地服務器和本地PC上使用GIT
- 21. 如何在ASP.NET中生成Excel 2007文件而不會收到警告消息?
- 22. 爲什麼webform(asp.net-3.5)在從生產服務器複製到本地系統後出現被排除?
- 23. 需要轉換IO.FileStream代碼從服務器而不是本地獲取文件
- 24. 根據本地linux服務器而不是web服務器運行網址
- 25. htaccess的 - 工作在本地,而不是遠程服務器上
- 26. Iframe在本地服務器上正常工作但不是生產服務器
- 27. 上傳文件(excel)到服務器
- 28. 離子服務在本地主機上,而不是服務器的IP
- 29. asp.net mvc創建2007/2010 excel文件並保存到服務器
- 30. 是否可以通過遠程PC訪問本地機器上託管的asp.net Web應用程序(不是服務器,而是普通筆記本電腦)?
您不能在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