C++에서 스프레드시트 데이터 모델을 생성하고 채우는 방법
이 가이드는 Aspose.Cells FOSS for C++ 라이브러리를 사용하여 워크북을 만들고, 셀에 값과 수식을 채우며, 스타일을 적용하고, 스프레드시트 파일로 저장하는 방법을 보여줍니다. 핵심 클래스는 Workbook, Worksheet, Cell, Style입니다.
단계별 가이드
단계 1: 빌드 설정
CMake 프로젝트에 Cells FOSS 라이브러리를 추가하고 Aspose.Cells.Foss.Cpp 타깃을 링크합니다:
cmake_minimum_required(VERSION 3.15)
project(CreateSpreadsheet CXX)
set(CMAKE_CXX_STANDARD 17)
add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp)
add_executable(CreateSpreadsheet main.cpp)
target_link_libraries(CreateSpreadsheet PRIVATE Aspose.Cells.Foss.Cpp)단계 2: 헤더 포함 및 네임스페이스 설정
aspose/cells_foss/에서 사용하는 각 클래스에 대한 개별 헤더(Workbook.h, Worksheet.h, Cell.h, Style.h, Font.h, Color.h, CellArea.h)를 포함한 다음, Aspose::Cells_FOSS 네임스페이스를 엽니다:
using namespace Aspose::Cells_FOSS;3단계: 워크북을 만들고 시트 이름 지정
Workbook 를 인스턴스화하고, GetWorksheets()[0] 로 첫 번째 워크시트를 가져온 다음, 표시 이름을 설정합니다:
int main() {
Workbook workbook;
Worksheet& sheet = workbook.GetWorksheets()[0];
sheet.SetName("Sales");
return 0;
}4단계: 셀 값 추가
GetCells()["A1"].PutValue() 를 호출하여 텍스트 문자열, 숫자 값 및 불리언을 주소별 개별 셀에 기록합니다:
sheet.GetCells()["A1"].PutValue("Product");
sheet.GetCells()["B1"].PutValue("Price");
sheet.GetCells()["A2"].PutValue("Widget");
sheet.GetCells()["B2"].PutValue(9.99);
sheet.GetCells()["A3"].PutValue("Gadget");
sheet.GetCells()["B3"].PutValue(24.99);5단계: 수식 설정
셀에 SetFormula() 를 호출하여 Excel 호환 수식 문자열을 저장합니다; 파일을 열면 Excel이 수식을 평가합니다:
sheet.GetCells()["B4"].SetFormula("=SUM(B2:B3)");6단계: 셀 스타일 적용
Cell::GetStyle() 로 스타일을 가져오고, 수정한 뒤 Cell::SetStyle(style) 로 적용합니다:
Style headerStyle = sheet.GetCells()["A1"].GetStyle();
Font font;
font.SetBold(true);
font.SetColor(Color::FromArgb(255, 255, 255, 255));
headerStyle.SetFont(font);
headerStyle.SetPattern(FillPattern::Solid);
headerStyle.SetForegroundColor(Color::FromArgb(255, 34, 120, 212));
sheet.GetCells()["A1"].SetStyle(headerStyle);
sheet.GetCells()["B1"].SetStyle(headerStyle);단계 7: 셀 병합
단일 셀로 범위를 결합하려면 Cells::Merge을(를) 사용하세요:
CellArea titleArea = CellArea::CreateCellArea("A1", "B1");
sheet.GetCells().Merge(0, 0, 1, 2);단계 8: 워크북 저장
workbook.Save()에 파일명을 전달하여 스프레드시트를 XLSX 파일로 저장하고, 그 다음 Dispose()을(를) 호출하여 리소스를 해제하세요:
workbook.Save("sales.xlsx");
workbook.Dispose();일반적인 문제 및 해결 방법
저장 후 스타일이 적용되지 않음 항상 호출 Cell::SetStyle(style) 스타일 객체를 수정한 후에. 반환된 스타일을 직접 수정해도 변경 사항이 적용되지 않으며, 명시적으로 다시 설정해야 합니다.
수식이 문자열 리터럴로 저장됨 사용 SetFormula("=SUM(...)") not PutValue("=SUM(...)"). PutValue 인수를 수식이 아닌 리터럴 문자열로 취급합니다.
병합된 셀이 올바르게 렌더링되지 않음 병합 매개변수(row, column, rowCount, columnCount)가 의도한 범위를 정확히 포함하도록 확인하십시오. 겹치는 병합은 지원되지 않습니다.
워크북은 생성 후 시트가 없습니다 기본 시트는 항상 다음에 의해 생성됩니다 Workbook(). 호출 GetWorksheets()[0] 액세스하려면.
Dispose가 호출되지 않음 항상 호출하세요 workbook.Dispose() 리소스를 해제하려면, 특히 장시간 실행되는 애플리케이션에서.
자주 묻는 질문
한 워크북에 여러 워크시트를 추가할 수 있나요?
예. Workbook::GetWorksheets()을(를) 사용하여 컬렉션에 접근하고 프로그래밍 방식으로 시트를 추가하십시오. Workbook::EnsureUniqueSheetName()을(를) 사용하여 각 시트에 고유한 이름을 지정하십시오.
셀에 숫자 형식을 어떻게 설정합니까?
Style::SetNumberFormat(format)를 Cell::SetStyle(style) 호출하기 전에 사용하십시오. 형식 문자열은 표준 Excel 숫자 형식 구문을 따릅니다.
여러 셀에 동일한 스타일을 적용할 수 있나요?
예. 스타일을 한 번 가져와 수정한 뒤, 각 대상 셀에 대해 SetStyle(style)을 호출하십시오.
저장할 때 수식이 평가되나요?
아니요. 수식 평가는 파일을 열 때 Excel 또는 호환 가능한 리더에서 이루어집니다. 라이브러리는 수식 문자열을 셀에 기록합니다.
워크시트에 몇 개의 행과 열을 담을 수 있나요?
각 워크시트는 표준 스프레드시트 크기에 따라 전체 행 및 열 그리드에 데이터를 보관합니다.