Open XML 2.0 (DocumentFormat.OpenXml.dll)을 사용하여 xlsm 파일을 읽고 일부 셀 값을 업데이트 한 다음 "Microsoft Excel 2007 XML (.xlsm) | * .xlsm"로 저장합니다. 프로그래밍 방식으로 모든 셀이 작성되고 Microsoft Excel 2007 (Libre Office도 포함)을 사용하여 매력을 열지 만 Microsoft Excel 2010을 사용하여 파일을 열지 않습니다.
아래 오류가 발생합니다.
"Excel이 'Test.xlsm'에서 읽을 수없는 콘텐츠를 찾았습니다.이 통합 문서의 콘텐츠를 복구 하시겠습니까?이 통합 문서의 원본을 신뢰할 수있는 경우 예를 클릭하십시오."
경고에 예라고 말하면 파일이 복구되고 아래 경고 경고가 표시됩니다. 시트가 비어 있거나 일부 데이터가 업데이트되지 않습니다.
"교체 된 부품 : XML 오류가있는 /xl/worksheets/sheet1.xml 부품.로드 오류. 라인 1, 열 0. 제거 된 레코드 : /xl/calcChain.xml 부품의 수식 (계산 속성)"
Open XML 2.0이 2007 형식을위한 것인지 여부? 그렇다면 2010 형식으로 데이터를 내보내려면 올바른 SDK를 선택하도록 안내하십시오.
감사합니다,
문안 인사,
라비.
이 질문에 대한 답보다는 원인을 찾았습니다.
프로그래밍 방식으로 읽고 데이터베이스에서 셀 값을 업데이트하고 업데이트 된 파일을 다른 xlsm 파일로 저장하는 템플릿으로 xlsm 파일을 사용했습니다.
실제 문제는 참조 / 템플릿 파일이 데이터베이스에서 데이터를 업데이트하는 동일한 셀에 값이 있다는 것입니다. A14 셀에는 템플릿에 값이 있고 프로그래밍 방식으로 템플릿을 읽고 동일한 셀 A14의 값을 업데이트하고 있습니다.
템플릿에서 A14를 지우면 문제가 해결됩니다.
내가 얻은 오류 메시지가 실제 문제와 관련이 없다는 것이 이상합니다. 또한 Open XML을 사용하여 기존 값을 업데이트하는 방법에 대한 문서 (특수 코드)를 찾을 수 없습니까?
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다