C++에서 스프레드시트를 로드하는 방법
Aspose.Cells FOSS for C++는 Microsoft Excel 없이 기존 XLSX 스프레드시트를 로드하고 읽을 수 있게 해줍니다. 이 가이드는 워크북을 로드하고, 워크시트에 접근하며, Workbook, Worksheet, Cell 클래스를 사용하여 셀 값을 읽는 방법을 단계별로 안내합니다.
단계별 가이드
단계 1: 빌드 설정
CMake 프로젝트에 Aspose.Cells FOSS for C++를 추가하세요:
cmake_minimum_required(VERSION 3.15)
project(LoadSpreadsheet CXX)
set(CMAKE_CXX_STANDARD 17)
add_subdirectory(path/to/Aspose.Cells-FOSS-for-Cpp)
add_executable(LoadSpreadsheet main.cpp)
target_link_libraries(LoadSpreadsheet PRIVATE Aspose.Cells.Foss.Cpp)단계 2: 필요한 헤더 포함
#include "aspose/cells_foss/Workbook.h"
#include "aspose/cells_foss/WorksheetCollection.h"
#include "aspose/cells_foss/Worksheet.h"
#include "aspose/cells_foss/Cell.h"
using namespace Aspose::Cells_FOSS;단계 3: 워크북 로드
기존 XLSX 파일을 로드하려면 Workbook 생성자에 파일 경로를 전달하세요:
int main() {
Workbook workbook("input.xlsx");
// workbook is now loaded and ready to use
return 0;
}단계 4: 워크시트에 접근하기
Workbook::GetWorksheets()를 사용하여 워크시트 컬렉션을 가져온 다음 인덱스로 접근하세요:
Worksheet& sheet = workbook.GetWorksheets()[0];
std::string name = sheet.GetName();단계 5: 셀 값 읽기
주소 문자열로 셀에 접근하고 값을 읽으세요:
std::string text = sheet.GetCells()["A1"].GetStringValue();
double number = sheet.GetCells()["B2"].GetValue().AsDouble();
bool flag = sheet.GetCells()["C3"].GetValue().AsBool();단계 6: 변경 사항 저장하기
수정이 끝난 후 파일에 다시 저장하세요:
workbook.Save("output.xlsx");
workbook.Dispose();일반적인 문제 및 해결 방법
파일을 찾을 수 없음 오류가 발생했습니다 파일 경로가 올바르고 파일이 존재하는지 확인하십시오. 작업 디렉터리가 불확실할 경우 절대 경로를 사용하세요.
숫자 셀에 대해 빈 문자열이 반환됩니다 사용 GetValue().AsDouble() 대신 GetStringValue() — GetStringValue() 텍스트가 아닌 숫자를 포함하는 셀에 대해 빈 문자열을 반환합니다.
워크북은 로드되지만 셀이 비어 있는 것처럼 보입니다 XLSX 파일이 암호로 보호되지 않았는지 확인하십시오. Aspose.Cells FOSS for C++는 암호화된 파일을 지원하지 않습니다.
수식 셀에서 예상치 못한 값이 반환됩니다 수식 셀은 계산된 값이 아니라 수식 문자열을 저장합니다. 수식은 파일이 열릴 때 Excel에 의해 평가됩니다. 사용 GetFormula() 수식 텍스트를 검색하려면.
처리 후 메모리가 해제되지 않음 Call workbook.Dispose() 모든 작업이 완료된 후에 관리되지 않는 리소스를 해제합니다.
자주 묻는 질문
단일 파일에서 여러 워크시트를 로드할 수 있나요?
예. Workbook::GetWorksheets()를 사용하여 모든 시트에 접근하고 인덱스로 반복합니다. sheet.GetName()를 호출하여 각 시트를 이름으로 식별합니다.
여러 시트를 포함한 XLSX 파일을 로드하고 특정 시트에서 읽을 수 있나요?
예. 0부터 시작하는 인덱스로 시트에 접근합니다: workbook.GetWorksheets()[1]는 두 번째 시트를 반환합니다.
파일을 로드하면 수식 재계산이 트리거되나요?
아니요. 라이브러리는 XLSX 파일에 저장된 셀 값과 수식 문자열을 그대로 로드합니다. 수식 재계산은 파일을 열 때 Excel 또는 호환 가능한 리더에서 수행됩니다.
파일 경로에 유니코드 문자가 포함되어 있으면 어떻게 되나요?
std::string로 경로를 전달하고 플랫폼에 맞는 올바른 인코딩을 사용하십시오. UTF-8 경로는 Linux와 macOS에서 지원됩니다. Windows에서는 경로 인코딩이 시스템 로케일과 일치하도록 확인하십시오.
같은 파일을 동시에 여러 번 로드하는 것이 안전한가요?
이 라이브러리는 동일한 Workbook 인스턴스에 대한 동시 접근에 대해 스레드 안전하지 않습니다. 스레드당 별개의 Workbook 인스턴스를 로드하십시오.