2017-12-27 1 views
0

데이터 테이블의 EPPlus를 사용하여 Excel 파일을 만들고 파일로 저장합니다. 모두 상당히 표준입니다. 이것은 번거 로움없이 작동합니다. 그러나 vba 프로젝트를 만들고 vba 코드를 추가하면 결과 .xlsx 파일이 갑자기 손상됩니다. 2013 년에 열려고하면 표준 오류가 발생합니다. 파일 형식 또는 확장이 유효하지 않은 파일 때문에EPPlus VBA 코드 추가 결과 xlsx 파일이 손상됨

"엑셀 파일을 열 수 없습니다 '는 xyz.xlsx'. 파일 확장자가 파일의 형식과 일치하는지 확인합니다.

나는 경우, 확장자를 .xls로 변경하면 파일이 정상적으로 열리고 스크립트는 정상적으로 실행됩니다 .Epplus (4.5.0.1)의 최신 베타 테스트 중입니다. 파일 확장명을 변경하고 .xls를 사용해야합니까 아니면 뭔가가 있어야합니까? 부정확?

ExcelPackage.Workbook.CreateVBAProject() 
ExcelPackage.Workbook.CodeModule.Code = "'Script is here" 
Dim FInfo as new FileInfo("C:\Myfiles\ThisFile.xlsx") 
ExcelPackage.SaveAs(FInfo) 

답변

1

XLSX 파일 형식에 VBA 코드를 추가 할 수 없습니다.

엑셀 2,007에서 2,013 사이의 기본 XML 기반의 파일 포맷 : here

.XLSX를 살펴 보자. Microsoft VBA (Visual Basic for Applications) 매크로 코드 또는 Microsoft Office Excel 4.0 매크로 시트 (.xlm)를 저장할 수 없습니다.

또한 다른 형식의 차이를 볼 수 here 에서 살펴 :

XLSM 당신이 당신의 XLSX 파일에서 VBA 매크로를 포함하는 경우, 당신은 변화 XLSM에 파일 확장자에 메시지가 표시됩니다. 만 그런 식으로 당신은 (거기에 다른 파일 형식도 가능하다 예를 들어 XLSB -하지만 당신은 VBA 매크로에 대한 XLSX을 사용할 수 없습니다) Excel 파일 내에서 매크로를 저장할 수 있습니다

XLSM로 파일을 저장하고해야 작업.

+1

확인되었습니다. .xlsm으로 전환하면 문제가 해결되었습니다. –