2017-12-22 1 views
2

EPPlus를 사용하여 xlsm 파일을 가져 오려고합니다. EPPlus가 이것을 지원하지 않는다는 링크를 발견했습니다 : Convert XLSM to XLSX. 그것은 아주 오래 되었기 때문에 지금 그것이 그것을지지하는지 알고 싶었습니다. 그렇지 않은 경우 XLSX로 변환하여 EPPlus로이 작업을 수행 할 수있는 방법이 있지만 방법은 Microsoft 업데이트에 독립적이어야하며 프로그램을 빌드 할 때 사용한 라이브러리에만 의존해야합니다. 나의 현재 코드는 다음과 같습니다EPPlus 가져 오기 파일 xlsm

FileInfo file = new FileInfo(Path.Combine(Program.source_path, s)); 
    using (ExcelPackage package = new ExcelPackage(file)) 
    { 
     ExcelWorksheet worksheet = package.Workbook.Worksheets[3]; 
     for (int row = 9; row <= worksheet.Dimension.End.Row; row++) 
     { 
     } 
    } 

답변

2

이것은 목표 XLSX 파일에 소스 XLSM 파일에서 모든 내용을 복사합니다.

 using (var target = new ExcelPackage(new System.IO.FileInfo("D:\\target.xlsx"))) 
     { 
      using (var source = new ExcelPackage(new System.IO.FileInfo("D:\\source.xlsm"))) 
      { 

       foreach (var worksheet in source.Workbook.Worksheets) 
       { 
        target.Workbook.Worksheets.Add(worksheet.Name, worksheet); 
       } 
      } 
      target.Save(); 
     } 
+0

대상 ExcelPackage를 using 문에도 사용해야합니다. 이것은 지금까지 최고의 EPPlus 솔루션 이었지만 범위에서 formating하는 테이블을 잃어 버렸습니다. (Excel을 열면 문제가 발견되어 복구를 시도한 다음 테이블이 없어 졌다고 표시됩니다.) – Magnetron

+0

감사합니다. 귀하의 의견, 내가 내 대답을 업데이 트 –

+0

나는 지금이 논리를 시도 할 것입니다. –