2009-07-29 4 views
4

ExcelPackage를 사용할 때 큰 문제가 발생합니다. 값을 제거해도 수식이 업데이트되지 않을 수 있기 때문입니다.Excel에서 수식을 자동으로 새로 고치는 방법은 무엇입니까?

ExcelInterop을 사용하여 xlsx를 xls로 저장하려고 시도했지만 문제가 해결 될 수 있다고 생각했지만 해결되지 않았습니다.

내가 해결 방법을 찾은 방법은 Ctrl + Alt + F9를 누르는 것입니다. 사용자는 매번 그렇게하는 것을 좋아하지 않으므로 프로그래밍 방식으로하고 싶습니다. 모든 xlsx 수식이 업데이트되었는지 확인하는 효과적인 방법을 알고 있습니까? ,

for (int iWorksheet = 1; iWorksheet <= workbook.Worksheets.Count; iWorksheet++) 
       { 
        Worksheet ws = ((Worksheet)workbook.Worksheets[iWorksheet]); 
        ws.UsedRange.Formula = ws.UsedRange.Formula; 
        ws.Calculate(); 
       } 

답변

9

전화 하는 VBA 매크로에서 Application.CalculateFull (또는 COM 개체 이상)

7

나는이 전에 나를 위해 일을 발견했다 및 Excel이없는 xlsx 통합 문서는 .NET 코드 (C#으로 작성)가 전부이기 때문에 .NET 응용 프로그램에서보다 쉽게 ​​작업 할 수 있습니다.

시도해 보려면 here의 예제를보고 무료 시험판 here을 다운로드하십시오.

면책 조항 : 나는하는 SpreadsheetGear LLC

+0

덕분에, 나는 또한 잘 작동 생각) –

+1

감사합니다,이 또한 [해결] (http://stackoverflow.com/a/9659653/234309) 나를 위해 할당의 문제를 multi-cell 범위의 수식 문자열 배열. 거기에서'Calculate()'는 필요하지 않았습니다. –

1

당신은 항상 Application.Calculation = xlAutomatic을 설정할 수 있습니다 소유하고 있습니다. 그렇게하면 계산을 수행하기 위해 자신의 코드에 의존하지 않고 필요한 경우에만 호출됩니다.

이 설정은 전체 Excel 인스턴스에 영향을줍니다. 따라서 클라이언트가 다른 통합 문서가 이와 같이 작동하는 것을 원하지 않으면 별도의 Excel 인스턴스에서 열어야합니다.

관련 문제