스프레드시트 관리 작업
스프레드시트 관리 작업
스프레드시트 관리는 워크북의 일상적인 객체 표면을 다룹니다: 워크시트, 셀 컬렉션, 타입된 값, 수식, 스타일링, 그리고 워크북을 사용할 수 있게 하는 구조적 기능들. 진입점은 항상 Workbook입니다.
Worksheets
시트는 워크북의 워크시트 컬렉션을 통해 관리됩니다 — 읽기 접근은 get_worksheets을 통해, 변경은 get_worksheets_mut을 통해 수행합니다. 시트는 인덱스(get(0)) 또는 이름(get_by_name)으로 지정되며, set_name로 이름을 변경하고, add_worksheet로 추가합니다:
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Data")?;
}셀 접근 및 타입된 값
셀은 A1 스타일 또는 숫자 방식으로 지정됩니다. get_by_index(row, column)은 생성된 레이아웃에 적합합니다:
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Month")?;
for month in 1..=12_u32 {
cells
.get_by_index(month, 0)
.put_value_string(format!("Month {month}"))?;
}다시 읽을 때, display_string_value은 표시 텍스트를 반환하고 value_type은 저장된 타입을 보고합니다.
캐시된 결과가 포함된 수식
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;캐시된 값은 Excel이 첫 번째 재계산 전에 표시하는 값이며, 이를 제공하면 파일 사용자가 즉시 올바른 결과를 볼 수 있습니다.
Styling
CellStyle은 Font, Fill, Borders을 집계합니다; StyleFlag는 업데이트가 적용되는 스타일 요소를 제어하여, 오버라이드하지 않는 한 기존 서식이 유지됩니다. NumberFormat는 값이 표시되는 방식을 관리합니다.
페이지 설정 및 탐색
PageSetup은 인쇄 레이아웃을 관리합니다: PaperSizeType, PageOrientationType, 및 여백. FreezePane은 스크롤 중에도 헤더 행을 표시하고, 행 및 열 가시성은 VisibilityType를 사용합니다.
구조: 테이블, 이름, 주석, 하이퍼링크
ListObject은 범위를TableStyleType스타일링 및TotalsCalculation합계 행이 있는 구조화된 테이블로 변환합니다.DefinedName와DefinedNameCollection은 명명된 범위를 관리합니다.Comment/CommentCollection와Hyperlink/HyperlinkCollection은 주석 및 탐색을 다룹니다.
팁 및 모범 사례
- 가변 빌림(
get_worksheets_mut,get_cells_mut)은 스코프 블록 안에 유지하고; 블록이 닫힌 후 워크북을 저장하세요. get_by_index를 루프와 생성된 레이아웃에 사용하고; 고정 위치에는 A1 이름을 사용하세요.- 관련 없는 서식이 영향을 받지 않도록
StyleFlag를 사용해 스타일을 적용하세요. - 주소를 하드코딩하는 대신
DefinedName로 중요한 범위에 이름을 지정하세요.
일반적인 문제
| 문제 | 원인 | 수정 |
|---|---|---|
| 워크북 저장 중 대여 오류 | 가변 워크시트 대여가 아직 살아 있음 | 호출하기 전에 스코프 블록을 닫으세요 save |
| Excel에서 수식이 0으로 표시됩니다 | 캐시된 값이 제공되지 않았습니다 | 예상 결과와 함께 put_formula_with_cached_value를 사용하십시오 |
| 시트를 찾을 수 없습니다 | 이름 불일치 | 인덱스로 주소를 지정하거나 set_name 철자를 확인하십시오 |
FAQ
두 번째 워크시트를 어떻게 추가하나요?
워크북에서 add_worksheet을 호출한 다음, 인덱스 또는 이름으로 워크시트 컬렉션을 통해 가져옵니다.
한 번에 읽고 쓸 수 있나요?
예 — Workbook::load_xlsx으로 로드하고, get_worksheets_mut을 통해 변형한 뒤, save을 사용해 동일한 경로나 새로운 경로에 저장합니다.
타입이 지정된 세터가 값을 변환하나요?
변환이 적용되지 않습니다: 각 put_value_* 세터는 고유 타입을 저장하고; display_string_value은 읽을 때 표시 텍스트를 렌더링합니다.
API Reference 요약
| 클래스/메서드 | 설명 |
|---|---|
Workbook.add_worksheet | 워크북에 시트를 추가하십시오 |
Worksheet.set_name | 시트 이름 바꾸기 |
Worksheet.get_cells_mut | 가변 셀 컬렉션 |
CellMut.put_value_string | 타입된 문자열 설정자 |
CellMut.put_formula_with_cached_value | 수식과 캐시된 결과 |
CellStyle | 글꼴, 채우기 및 테두리 서식 |
StyleFlag | 적용할 스타일 요소 선택 |
PageSetup | 인쇄 및 페이지 레이아웃 |
ListObject | 구조화된 표 |