2014-10-11 135 views
0

我從數據庫中使用以下方法導出excel文件。但我有一個問題,當我輸出excel文件比自動下載下載文件夾時,我不希望這樣我希望我的excel文件被下載到我的項目文件夾中如何在特定的文件夾中保存Excel文件

var formsection = from fs in db.FormSections 
        join form in Form on fs.FormId equals form.FormId 
        select fs; 
XLWorkbook wb = new XLWorkbook();    
string sheetName = "ARTICLE"; //Give name for export file.    

var Fs = wb.Worksheets.Add("FORMSECTION"); 
Fs.Cell(2, 1).InsertTable(formsection.ToList());// assign list here. 
HttpContext.Response.Clear(); 
HttpContext.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; 
HttpContext.Response.AddHeader("content-disposition", String.Format(@"attachment;filename={0}.xlsx", sheetName.Replace(" ", "_"))); 
var filePath = Path.Combine(Server.MapPath("~/Content")); 
using (MemoryStream memoryStream = new MemoryStream()) 
{     
    wb.SaveAs(memoryStream);      
    memoryStream.WriteTo(HttpContext.Response.OutputStream); 
    memoryStream.Close(); 
}    
HttpContext.Response.End(); 
+3

您無法控制它在客戶端的下載位置。 – 2014-10-11 08:07:29

+0

@JeremyThompson我只想在下載前加密文件如何做到這一點 – 2014-10-11 08:09:10

回答

0

使用代碼

public void ImportXLX() 
     { 

string filePath = string.Format("{0}/{1}", Server.MapPath("~/Content/UploadedFolder"), @"C:\Users\Vipin\Desktop\Sheets\MyXL6.xlsx"); 
        if (System.IO.File.Exists(filePath)) 
         System.IO.File.Delete(filePath); 
        Request.Files["xlsFile"].SaveAs(filePath); 
        Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); 
} 
1

您需要首先將excel寫入服務器。如下

wb.SaveAs(filePath); 
//encrypt the file 
Encrypt(filePath); 
using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read)) 
{ 
    using (MemoryStream memoryStream = new MemoryStream()) 
    { 
     byte[] bytes = new byte[file.Length]; 
     file.Read(bytes, 0, (int)file.Length); 
     memoryStream.Write(bytes, 0, (int)file.Length); 
     memoryStream.WriteTo(HttpContext.Response.OutputStream); 
    } 
} 
+0

訪問路徑'C:\ Users \ Neeraj \ Documents \ Visual Studio 2013 \ Projects \ Planetskool \ Planetskool \ Planetskool \ Content'被拒絕..Getting wb.SaveAs(filepath)中的錯誤; – 2014-10-11 09:12:57

+0

試試這個: var filePath = Path.Combine(Server.MapPath(「〜/ Content」),string.Format(「{0} .xls」,Guid.NewGuid()。ToString()) – Simer 2014-10-11 09:20:42

+0

使用此文件路徑文件下載到chrome下載文件夾:( – 2014-10-11 09:24:19

2

這裏是一個DataTable轉換爲.csv文件,將文件保存到項目的文件夾,我的店在文件夾國內的例子作爲我給出的路徑。

private void test(DataTable dt1) { 

    string csv = string.Empty; 

    foreach (DataColumn column in dt1.Columns) 
    { 
     //Add the Header row for CSV file. 
     csv += column.ColumnName + ','; 
    } 

    //Add new line. 
    csv += "\r\n"; 

    foreach (DataRow row in dt1.Rows) 
    { 
     foreach (DataColumn column in dt1.Columns) 
     { 
      //Add the Data rows. 
      csv += row[column.ColumnName].ToString().Replace(",", ";") +','; 
     } 

     //Add new line. 
     csv += "\r\n"; 
    } 

    string datetime = Convert.ToString(DateTime.Today.ToString("dd-MM-yyyy")).Trim(); 
    string filepath = "C:\\Users\\Prateek\\Desktop\\MMR New 27-07 -\\Domestic\\"; 
    string filename= @"BILLING_BOOK_NO" + "_4005" + "_"+datetime+".CSV"; 
    string combinepath = filepath + filename;   
    System.IO.File.WriteAllText(combinepath,csv); 
}` 
相關問題