2017-12-07 14 views
-2

내가 파일을 엑셀 DB 데이터를 내보내려고, 파손 되었으나, 나는C#을은, 파일 이름은</p> <p>영어 파일 이름은 아무 문제가 없다

한국의 파일 이름을 설정하려고 할 때

파일 이름이 깨졌습니다.

하지만 내 보낸 Excel 파일을 열 때 잘 열리고 모든 텍스트도 괜찮습니다.

어떻게 파일 이름 코드를 저장할 수 있습니까?

내 코드는 다음과 같습니다.

btnSaveClick 이벤트

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) 
     } 
    } 

엑셀 내보내기

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

당신이 영어 파일 이름과 한국어 파일 이름을 추가하시기 바랍니다 수 수정? – programtreasures

+0

귀하의 코드에 도움이되는 정보가 거의 없습니다. 예 : fileName 선언 및 추가 지정. 전체 코드 게시 –

+0

내용을 영어로 저장할 수 있으면 인코딩을 사용하여 한국어로 파일 이름을 저장할 수 있으며이 링크를보고 인코딩을 수행하고 파일 이름 https://stackoverflow.com/questions/6621532에 적용 할 수 있습니다./c-sharp-save-a-korean-encoding- – MethodMan

답변

0

나는 그 문제를 해결했다.

추가 된 새로운 라인

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

그리고 코드

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