programing

eplus를 통해 excel 공식을 호출합니다.

magicmemo 2023. 6. 15. 21:46
반응형

eplus를 통해 excel 공식을 호출합니다.

저는 ASP.NET MVC4 C# 프로젝트에 엑셀 시트를 가지고 있으며, EPLUS를 사용하여 엑셀 시트에서 성공적으로 읽을 수 있습니다.이제, 저는 2개의 숫자를 셀 C:2와 C:3에 전달하고 C:4의 공식인 =SUM(C2:C3)을 호출할 수 있기를 원합니다.

따라서 C#에서 4와 6을 입력하고 공식을 호출하여 C:4에서 40(10과 30의 SUM)의 결과를 얻을 수 있습니다.C#에서 이를 수행하려면 어떻게 해야 합니까?

다음 코드에서는 d에 대해 0을 반환합니다.평균

d.Average = Convert.ToDouble(currentWorksheet.Cells["C4"].Value);

여기 행을 가로지르는 c#의 다음 코드가 있습니다.

        using (var package = new ExcelPackage(existingFile))
        {
            ExcelWorkbook workBook = package.Workbook;
            var currentWorksheet = workBook.Worksheets.First();
            currentWorksheet.Workbook.CalcMode = ExcelCalcMode.Automatic;
            currentWorksheet.Cells["C4"].Formula = "=SUM(C2:C3)";
            currentWorksheet.Cells["C2"].Value = 10;
            currentWorksheet.Cells["C3"].Value = 30;
            package.Save();


        }

        using (var package = new ExcelPackage(existingFile))
        {
            ExcelWorkbook workBook = package.Workbook;
            var currentWorksheet = workBook.Worksheets.First();
            d.Average = Convert.ToDouble(currentWorksheet.Cells["C4"].Value);
        }

건너뛰기=수식 문자열에 포함됩니다.

교체하다currentWorksheet.Cells["C4"].Formula = "=SUM(C2:C3)";

와 함께

currentWorksheet.Cells["C4"].Formula = "SUM(C2:C3)";

EpPlus 4.0.1.1 이후에는 확장 방법이 있습니다.Calculate(this ExcelRangeBase range)액세스하기 전에 호출Value속성:

currentWorksheet.Cells["C4"].Calculate();

그리고.currentWorksheet.Cells["C4"].Value의 기대값을 반환합니다.40그 후에

이전 답변을 검토하던 중 EPLUS의 계산 엔진이 아직 개발 중이라는 것을 알게 되었습니다.

CodePlex에 대한 이 토론을 참조하십시오. (2011년 이후 날짜)

로드맵 페이지의 인용문:

버전 3.2

공식 파서, 계산 엔진

패키지 API를 DotNetZip으로 바꾸기

삽입, 삭제 성능 및 메모리 소비를 개선하는 새로운 셀 저장소

최종 편집일: 2013년 2월 14일

언급URL : https://stackoverflow.com/questions/21189163/invoke-formula-in-excel-via-epplus

반응형