Excel 파일에는 그래프나 차트와 같은 시각적 정보뿐 아니라 숫자 정보도 포함될 수 있습니다. 응용 프로그램 내에서 일부 정보를 그래픽 형식으로 표시하려면 C++에서 Excel을 SVG로 변환할 수 있습니다. 이 문서에서는 단계별 세부 정보와 샘플 코드를 사용하여 C++에서 Excel을 SVG로 변경하는 방법을 설명합니다. XLSX 또는 XLS 형식으로 입력 파일을 로드할 수 있습니다.
C++에서 Excel을 SVG로 변환하는 단계
- NuGet 패키지 관리자 도구를 사용하여 Aspose.Cells.Cpp를 추가하여 애플리케이션 구성
- 프로젝트에 Aspose::Cells 네임스페이스 참조 추가
- Workbook 클래스 인스턴스를 사용하여 입력 Excel 파일 로드
- 출력 SVG 파일의 형식 및 이미지 속성 설정
- Excel 파일에서 렌더링된 디스크에 출력 SVG 이미지 저장
이 단계별 접근 방식은 입력 Excel 파일이 로드되고 출력 이미지의 다른 속성이 설정되는 *C++*에서 Excel을 벡터 그래픽으로 변환하는 간단한 프로세스를 설명합니다. 요구 사항에 따라 이미지의 렌더링 형식과 해상도 속성을 설정할 수 있습니다. 마지막 단계에서 추가 처리 또는 보기를 위해 출력 SVG 이미지를 디스크에 씁니다.
C++에서 Excel을 SVG로 변환하는 코드
#pragma once | |
#include "Aspose.Cells.h" | |
class ConvertExcelToSVG | |
{ | |
public: void ConvertExcelToSVGInCplusCplus() | |
{ | |
// Set the Aspose.Cells license to create output SVG without watermark | |
intrusive_ptr<License> rowHeightLicense = new License(); | |
rowHeightLicense->SetLicense(new String("Aspose.Cells.lic")); | |
// Load input workbook | |
intrusive_ptr<Aspose::Cells::IWorkbook> targetWorkbook = Factory::CreateIWorkbook(new String("ConvertExcelToSVG.xlsx")); | |
// Access target worksheet say third one | |
intrusive_ptr<Aspose::Cells::IWorksheet> thirdSheet = targetWorkbook->GetIWorksheets()->GetObjectByIndex(2); | |
// Create object to set image options | |
intrusive_ptr<Aspose::Cells::Rendering::IImageOrPrintOptions> OptionsForRenderingImage = Factory::CreateIImageOrPrintOptions(); | |
// Specify SVG save format | |
OptionsForRenderingImage->SetSaveFormat(Aspose::Cells::SaveFormat::SaveFormat_SVG); | |
// Autofit Cells based on the data | |
OptionsForRenderingImage->SetCellAutoFit(true); | |
// Specify values for the horizontal and vertical resolution | |
OptionsForRenderingImage->SetHorizontalResolution(300); | |
OptionsForRenderingImage->SetVerticalResolution(300); | |
// Using the CreateISheetRender() function, render the sheet by providing the sheet reference and image options | |
intrusive_ptr<Aspose::Cells::Rendering::ISheetRender> sheetRender = Factory::CreateISheetRender(thirdSheet, OptionsForRenderingImage); | |
// Get page count | |
Aspose::Cells::Systems::Int32 totalPages = sheetRender->GetPageCount(); | |
// Initialize string builder object for string concatenation | |
intrusive_ptr<Aspose::Cells::Systems::Text::StringBuilder> stringBuilder = new Aspose::Cells::Systems::Text::StringBuilder(); | |
// Parse throught all the pages to convert them to SVG one by one | |
for (int counter = 0; counter < totalPages; counter++) | |
{ | |
// Set the path for output image with string appending | |
stringBuilder->Clear(); | |
stringBuilder->Append(counter); | |
stringBuilder->Append((StringPtr)new String("_Page.svg")); | |
// Convert Excel to SVG image | |
sheetRender->ToImage(counter, stringBuilder->ToString()); | |
} | |
} | |
}; |
위의 코드 조각에 따라 입력 Excel 파일을 로드하려면 Factory::CreateIWorkbook 메서드를 사용해야 합니다. 그런 다음 IImageOrPrintOptions 클래스를 사용하여 출력 SVG 이미지에 대한 여러 기본 설정을 지정하고 파일 경로와 이름을 지정하여 생성된 파일을 저장합니다. 이 코드의 속성 값을 수정하여 출력 기준을 충족할 수 있습니다.
이 짧은 자습서는 C++*를 사용하여 *Excel을 벡터 그래픽으로 변경하는 방법에 중점을 두었습니다. 반면, Excel 차트를 JPEG 이미지로 변환해야 하는 경우 C++에서 Excel 차트를 JPEG로 변환하는 방법에 대한 문서를 참조하세요.