2017-12-07 2 views
-2

Wenn ich versuche, DB-Daten zu exportieren Datei zu übertreffen,C# Wenn ich db Daten exportieren Datei zu übertreffen, wurde Dateiname gebrochen

Englisch Dateiname ist kein Problem, aber wenn ich versuche, Dateinamen Korean

einstellen

Dateiname wurde gebrochen.

Aber wenn ich exportierte Excel-Datei öffne, öffnet es sich gut und alle Texte sind auch in Ordnung.

Wie kann ich den Dateinamen reparieren?

Mein Code ist unten.

btnSaveClick Ereignis

protected void btnMemSaveExcel_Click(object sender, EventArgs e) 
    { 
     //set Excel header as string[] ExcelHeaders 

     try 
     { 
      //Get siteTitle to use Excel file name. 
      string siteTitle = SPContext.Current.Site.OpenWeb().Title; 

      //some codes.. 
      ExcelExport(Page.Response, ds.Tables[0], siteTitle + "_MemberList", siteTitle + "_MemberList", ExcelHeader, true) 
     } 
    } 

Excel Export

private static void ExcelExport(HttpResponse response, DataTable dataTable, string fileName, string sheetTitle, string[] colHeader, bool borderLine) 
{ 
    ExcelWorkSheet ws = null; 
    int rowNum = 1; 

    if(dataTable != null && dataTable.Rows.Count > 0) 
    { 
     ExcelPackage pck = new ExcelPackage(); 
     ws = pck.WorkBook.Worksheets.Add(sheetTitle); 

     //set header, set data, etc 

     response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; 
     response.AddHeader("content-disposition", string.Format("attachment; filename={0}.xlsx", fileName)); 

     response.BinaryWrite(pck.GetAsByteArray()); 
     response.End(); 
    } 
} 
+2

Sie bitte Ihre englischen Dateinamen und Koreanisch Dateinamen hinzufügen? – programtreasures

+0

Ihrem Code fehlen einige Informationen, damit Ihnen jemand weiterhelfen kann. Zum Beispiel Dateiname Deklaration und weitere Zuweisungen. Veröffentlichen Sie den vollständigen Code –

+0

Wenn Sie den Inhalt auf Englisch speichern können, dann können Sie den Dateinamen in Koreanisch speichern, indem Sie den Link "Encoding" verwenden und die Codierung vornehmen und auf den Dateinamen https://stackoverflow.com/questions/6621532 anwenden/c-sharp-save-a-file-mit-Koreanisch-Encoding – MethodMan

Antwort

0

löste ich das Problem.

Added neue Linie

string fileSaveName = HttpUtility.UrlPathEncode("fileName.TrimEnd()); 

Und Code ändern

response.AddHeader("content-dispositon", string.Format("attachment; filename={0}.xlsx", fileSaveName)); 
Verwandte Themen