소개
스프레드시트 관리는 aspose-cells-foss-rust 크레이트의 핵심입니다: 워크북, 그 시트 및 셀을 모델링하는 객체와 Rust 데이터를 보기 좋은 XLSX 파일로 변환하는 작업들. 이 게시물은 시트를 생성하고 타입이 지정된 값을 쓰는 것부터 스타일링, 페이지 레이아웃, 그리고 워크북을 사용 가능하게 만드는 구조적 기능인 주석, 하이퍼링크, 테이블, 정의된 이름에 이르기까지 전체를 살펴봅니다.
여기에 표시된 모든 내용은 오픈 소스이며 MIT 라이선스를 가진 크레이트의 일부입니다. 어느 단계에서도 Microsoft Office를 설치할 필요가 없으며, 라이브러리는 XLSX 패키지 형식을 직접 읽고 씁니다.
이 섹션은 최신 제품 동작 및 API 적용 범위를 확인하기 위해 현재 소스 모델과 비교 검토되었습니다.
주요 기능
워크시트 및 셀 컬렉션
워크시트는 워크북의 워크시트 컬렉션을 통해 관리됩니다. 시트는 인덱스 또는 이름으로 접근하며, set_name으로 이름을 변경하고, 셀은 get_cells(읽기) 또는 get_cells_mut(쓰기)를 통해 접근합니다:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Charts")?;
{
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Month")?;
cells.get("B1")?.put_value_string("Sales")?;
}
}
이 이름 또는 인덱스로 지정된 타입 값
셀은 문자열, 정수, 불리언, 소수 및 날짜-시간을 타입이 지정된 세터를 통해 받아들입니다. 셀은 A1 스타일(get("B3")) 또는 숫자 방식(get_by_index(row, column))으로 접근할 수 있어 생성된 레이아웃에 적합합니다:
for month in 1..=12_u32 {
cells
.get_by_index(month, 0)
.put_value_string(format!("Month {month}"))?;
cells
.get_by_index(month, 1)
.put_value_i32((month as i32 * 1000) + (month as i32 * 50))?;
}
캐시된 값을 포함한 수식
put_formula_with_cached_value는 수식 텍스트와 Excel이 첫 재계산 전에 표시해야 할 값을 함께 저장합니다 — 캐시된 결과를 읽는 다른 도구가 파일을 사용할 때 중요합니다:
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
스타일링 및 페이지 레이아웃
CellStyle은 Font, Fill, Borders를 포함하고; StyleFlag는 업데이트가 적용되는 스타일 요소를 선택합니다. NumberFormat은 값 렌더링을 제어하고, PageSetup은 인쇄를 위해 PaperSizeType와 PageOrientationType을 관리합니다. FreezePane과 행/열 VisibilityType은 큰 시트를 탐색 가능하게 유지합니다.
주석, 하이퍼링크 및 이름
검토자 워크플로와 탐색은 Comment와 CommentCollection, Hyperlink와 HyperlinkCollection, 그리고 명명된 범위를 위한 DefinedName과 DefinedNameCollection으로 다룹니다.
구조화된 테이블 및 필터
ListObject는 범위를 TableStyleType 스타일링과 TotalsCalculation 행을 가진 구조화된 테이블로 변환합니다; AutoFilter는 FilterColumn과 FilterOperatorType 조건을 사용해 필터링을 추가합니다.
빠른 시작
Cargo.toml에 해당 크레이트를 git 의존성으로 추가하세요(아직 crates.io에 공개되지 않았습니다):
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }최소한의 스프레드시트 관리 세션 — 생성, 쓰기, 저장, 다시 로드:
use aspose_cells_foss_rust::{CellValue, Workbook};
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Item")?;
cells.get("B1")?.put_value_string("Quantity")?;
cells.get("A2")?.put_value_string("Apples")?;
cells.get("B2")?.put_value_i32(12)?;
}
workbook.save("inventory.xlsx")?;
let loaded = Workbook::load_xlsx("inventory.xlsx")?;
let sheet = loaded.worksheet("Sheet1")?;
let cells = sheet.get_cells();
println!("A2 = {}", cells.get("A2")?.display_string_value());
Ok(())
}
지원되는 포맷
| 형식 | 확장자 | 읽기 | 쓰기 |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
로드는 구조화된 LoadDiagnostics와 함께 LoadOptions 복구 플래그(try_repair_package, try_repair_xml)를 허용합니다; 저장은 save, save_xlsx 또는 save_with_format을 SaveFormat 열거형과 함께 사용합니다.
오픈 소스 및 라이선스
Aspose.Cells FOSS for Rust는 MIT 라이선스를 가지고 있습니다. 소스 코드는 GitHub에 있습니다; 상업적 사용, 수정 및 재배포가 허용됩니다.