2013-03-23 47 views
2

繼續關於生成Excel文件的問題,我需要能夠在webform應用程序位於遠程Web服務器上時在本地創建文件。這不是我之前處理過的任何事情,所以我很難發現要問什麼。我正在使用c#在VS2010上使用WebForms。 eanderson指向我的方向 SimplexcelMichael Stum似乎做的伎倆,但該文件是在服務器上生成(或者我應該說'試圖',因爲它是不允許的!ASP.Net webform生成的Excel文件到本地PC而不是服務器

+0

您不能在TEMP文件夾中生成excel文件,然後將其流式傳回嗎?我們首先嚐試解決文件生成問題......您能否顯示保存到特定文件的代碼行? – rene 2013-03-23 16:36:03

+0

創建文件不是問題,它是在本地保存的,因爲我不能在服務器上。我的代碼是'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

回答

2

你應該可以做類似的事情來生成和下載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教程此代碼。

+0

這太好了,謝謝@eanderson。我需要解決的唯一問題是,當我打開文件時,我收到一條消息:「您打算打開的文件」MyExcelSheet.xls「的格式與文件擴展名指定的格式不同。在打開文件之前,驗證該文件是否已損壞並且來自受信任的來源。你想現在打開文件嗎?如果我說是,文件打開罰款。這是一個安全問題,因爲我無法看到文件擴展名的問題? – 2013-03-23 17:35:28

+0

嘗試將content-type改爲'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'或看看http://www.webmaster-toolkit.com/mime-types.shtml他們提到了四種不同的內容類型可以嘗試。 – eandersson 2013-03-23 17:37:10

+0

對不起,這給出了相同的結果。 – 2013-03-23 17:40:33

相關問題