소개

TypeScript용 Aspose.Cells FOSS은(는) 핵심 클래스 집합인 Workbook, WorksheetCollection, Worksheet, Cell, Style와 서식 및 필터링을 위한 지원 타입을 통해 기능을 노출합니다. 이 게시물은 그 핵심 API 표면을 체계적으로 탐색하는 안내서이며—단일 좁은 주제가 아니라 라이브러리를 기반으로 하는 모든 애플리케이션이 사용하게 되는 기본 사항들을 다룹니다: 워크북 열기 및 저장, 워크시트 탐색, 셀 값 및 수식 읽기·쓰기, 스타일 적용, 데이터 필터링, 그리고 다른 형식으로 내보내기.

아래 각 섹션은 API의 한 영역을 다루며, 관련된 구체적인 메서드와 속성을 포함하고, 실제 TypeScript 예제로 뒷받침합니다. 목표는 new Workbook()부터 개별 Cell 속성까지 구성 요소가 어떻게 결합되는지에 대한 실용적인 정신 모델을 제공하는 것입니다.


핵심 기능

워크북 및 워크시트 기본 사항

A Workbook은(는) new Workbook()으로 빈 상태로 생성하거나 Workbook.load(filePath, password)를 사용해 기존 파일에서 비동기적으로 로드할 수 있습니다. 모든 워크북은 worksheets을(를) 노출하는데, 이는 인덱싱, 반복 및 배열 스타일 메서드(map, filter, forEach, find, indexOf)를 지원하는 WorksheetCollection이며, addWorksheet(name), removeWorksheet(index), moveWorksheet(fromIndex, toIndex)도 제공합니다. 변경 사항을 저장하려면 workbook.save(filePath, options)을(를) 호출하십시오.

const workbook = new Workbook();

const ws1 = workbook.worksheets.addWorksheet();
const ws2 = workbook.worksheets.addWorksheet("CustomSheet1");
console.log("Total worksheets:", workbook.worksheets.length);

workbook.worksheets.removeWorksheet(1);
console.log("After delete:", workbook.worksheets.length);

console.log(
  "Names:",
  workbook.worksheets.worksheets.map((w) => w.name),
);

await workbook.save("workbook.xlsx");

셀 접근 및 값

A Worksheet은(는) putValue(key, value), getCell2(key)(이/가 Cell을 반환하고, 없을 경우 생성함), getCell(row, col)(이/가 Cell | undefined을 반환함), 및 getCellByRef(ref)을 통해 셀을 읽고 씁니다. 각각의 Cell은(는) value, formula, row, col, ref를 속성으로, 그리고 setFormula() / setStyle() / setHyperlink()를 메서드로 노출합니다.

const workbook = new Workbook();
const sheet = workbook.worksheets[0]!;

sheet.putValue("A1", 42);
sheet.putValue("A2", "Hello World");

const formulaCell = sheet.getCell2("A3");
formulaCell.setFormula("=A1+10");

console.log("A1 value:", sheet.getCell(0, 0)?.value);
console.log("A3 formula:", sheet.getCell(2, 0)?.formula);

const byRef = sheet.getCellByRef("A1");
console.log("Ref:", byRef?.ref, "Row:", byRef?.row, "Col:", byRef?.col);

await workbook.save("cells.xlsx");

스타일, 글꼴, 테두리 및 정렬

Style은(는) 셀의 글꼴, 채우기, 테두리, 정렬 및 숫자 형식 설정을 그룹화합니다. 전체 하위 객체를 getFont()/setFont(), getBorder()/setBorder(), getAlignment()/setAlignment()으로 읽거나 교체할 수 있으며, Style에 직접 편리한 설정자를 사용하여 setFontName(), setFontSize(), setBold(), setHorizontalAlignment(), setNumberFormat()와 같이 설정할 수 있습니다. 완성된 Style을 Cell.setStyle()로 셀에 적용합니다.

const workbook = new Workbook();
const sheet = workbook.worksheets[0]!;

const style = new Style();
style.setFontName("Arial");
style.setFontSize(14);
style.setBold(true);
style.setNumberFormat("0.00");

style.getBorder().bottom = { style: "thin", color: "000000" };

style.setHorizontalAlignment("center");
style.setVerticalAlignment("center");
style.setWrapText(true);

const cell = sheet.getCell2("B2");
cell.putValue(1234.5);
cell.setStyle(style);

console.log("Bold:", style.isBold(), "Format:", style.getNumberFormat());

await workbook.save("styled.xlsx");

AutoFilter 클래스를 이용한 자동 필터링

Worksheet.setAutoFilter(range)은(는) 일반적인 경우에 대한 바로가기이지만, 기본 AutoFilter 클래스를 직접 사용할 수도 있습니다: 범위와 함께 인스턴스를 생성한 뒤, 각 열마다 addFilterColumn(col, filters, blank)를 호출하여 표시될 값을 정의하거나, removeFilterColumn(col) / clear()를 사용해 필터링을 취소합니다.

const workbook = new Workbook();
const sheet = workbook.worksheets[0]!;

sheet.putValue("A1", "Name");
sheet.putValue("B1", "City");
sheet.putValue("A2", "Alice");
sheet.putValue("B2", "New York");
sheet.putValue("A3", "Bob");
sheet.putValue("B3", "London");

const filter = new AutoFilter("A1:B3");
filter.addFilterColumn(1, ["New York"], false);

console.log("Filter range:", filter.range);
console.log("Filter columns:", filter.columns.length);

await workbook.save("filtered.xlsx");

HTML, CSV, JSON, 및 Markdown으로 내보내기

.xlsx을(를) 넘어, Workbook은(는) toHtml(), toCsv(), toJson(), toMarkdown()를 사용해 직접 텍스트로 렌더링할 수 있거나, 파일 확장자가 SaveFormat 열거형을 통해 형식을 선택하도록 저장될 수 있습니다 (XLSX, CSV, JSON, MARKDOWN, HTML).

const workbook = new Workbook();
const sheet = workbook.worksheets[0]!;

sheet.putValue("A1", "Name");
sheet.putValue("B1", "Age");
sheet.putValue("A2", "Alice");
sheet.putValue("B2", 25);
sheet.putValue("A3", "Bob");
sheet.putValue("B3", 30);

console.log("JSON:", workbook.toJson());
console.log("Markdown:\n", workbook.toMarkdown());

await workbook.save("report.csv");
await workbook.save("report.html");

빠른 시작

git clone https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-TypeScript.git
cd Aspose.Cells-FOSS-for-TypeScript
npm install
npm run build
import { Workbook, Style } from "excel-cells";

const workbook = new Workbook();
const sheet = workbook.worksheets.get(0)!;
sheet.name = "Summary";

sheet.putValue("A1", "Item");
sheet.putValue("B1", "Count");
sheet.putValue("A2", "Widgets");
sheet.putValue("B2", 12);
sheet.putValue("A3", "Gadgets");
sheet.putValue("B3", 7);

const totalCell = sheet.getCell2("B4");
totalCell.setFormula("=SUM(B2:B3)");

const numberStyle = new Style();
numberStyle.setNumberFormat("0");
sheet.getCell2("B2").setStyle(numberStyle);
sheet.getCell2("B3").setStyle(numberStyle);
sheet.getCell2("B4").setStyle(numberStyle);

const detail = workbook.worksheets.addWorksheet("Detail");
detail.putValue("A1", "Raw Data");

await workbook.save("summary.xlsx");

const reloaded = await Workbook.load("summary.xlsx");
console.log("Worksheets:", reloaded.worksheets.length);
console.log("B4 formula:", reloaded.worksheets.get(0)!.getCell(3, 1)?.formula);

지원되는 형식

형식확장자읽기쓰기
XLSX.xlsx✓✓
HTML.html✓✓
CSV.csv—✓
JSON.json—✓
Markdown.md—✓

오픈 소스 및 라이선스

Aspose.Cells FOSS for TypeScript은(는) MIT 라이선스로 배포됩니다. 소스 코드는 GitHub에서 확인할 수 있습니다. 상업적 사용은 MIT 라이선스 조건에 따라 허용됩니다.


시작하기

관련 리소스