본문으로 건너뛰기

Word API

Word 문서를 연 iframe에는 Office.word(iframe)을 사용합니다. 앱 핸들은 문서 루트를 노출하고 최상위 메서드를 위임하므로 word.getBody()word.getDocument().getBody()와 같습니다.

먼저 Editor SDK 빠른 시작의 배포 파일·import map·HTTP 서버 설정을 완료하고, 이 문서 종류를 office-frame iframe에 엽니다. 아래 JavaScript 블록은 같은 모듈 스크립트에서 순서대로 사용합니다. 쓰기 예제는 문서를 변경하므로 샘플이나 복사본에서 실행합니다.

객체 모델

루트 핸들은 Word.WordDocument입니다. 현재 카탈로그의 주요 객체 타입: Body, Section, Paragraph, Range, Table, TableRow, TableCell, Shape, Image, Bookmark, Hyperlink, List, DocumentInfo.

모든 핸들 메서드는 편집기와의 왕복이며 Promise를 반환합니다. 다른 객체를 반환하는 메서드는 새 핸들을 돌려줍니다.

텍스트 읽기와 쓰기

import { Office, Word } from "@thinkfree.dev/tfo-sdk";

const iframe = document.querySelector("#office-frame");
const word = Office.word(iframe);
await word.whenReady();

const doc = word.getDocument();
const body = await doc.getBody();
console.log(await body.getText());

const title = await body.insertParagraph("Quarterly summary");
await title.setStyle(Word.Style.HEADING_1);

const para = await body.insertParagraph("Revenue grew 15% over the previous quarter.");
await para.setParagraphFormat({ align: Word.TextAlign.JUSTIFY, lineSpacing: 1.5 });

await doc.save();

상수는 Word 네임스페이스에 있습니다(예: Word.Style, Word.TextAlign, Word.ListType). Office와 함께 네임스페이스를 import하십시오.

범위 검색과 서식

const hits = await body.search("review");
for (const range of hits) {
await range.setTextFormat({ highlightColor: "#FFFF00", bold: true });
}

특정 영역을 편집할 때는 범위와 단락 핸들을 사용합니다. 프리뷰 API는 편집기 배포 파일과 함께 버전이 관리되므로, 메서드를 사용하기 전에 생성된 API 카탈로그를 확인합니다.

표와 목록

const table = await body.insertTable(3, 2, {
values: [["Item", "Value"], ["Revenue", "120"], ["Cost", "80"]],
});

const first = await body.insertParagraph("Lock the plan");
const last = await body.insertParagraph("Start development");
const range = await doc.getRange({ startParaId: await first.getId(), endParaId: await last.getId() });
await range.setList(Word.ListType.NUMBER_DECIMAL); // apply once over the whole range to keep one numbering sequence

오류

실패한 문서 작업은 SDKError로 거부됩니다. 편집기의 구조화된 응답은 error.data에 있습니다.

try {
await body.insertParagraph("…");
} catch (error) {
if (error.data?.error) console.warn(error.data.error.code, error.data.error.message);
}

전체 오류 표는 문서 도구 및 오류를 참고하십시오.

API 레퍼런스

현재 SDK 빌드의 Word 핸들에서 사용할 수 있는 객체 타입마다 레퍼런스 페이지가 하나씩 있습니다. SDK 타입 정의에서 생성되며, 메서드 요약 표 다음에 메서드별 TypeScript 시그니처, 매개변수, 반환값이 이어집니다. 모든 메서드는 Promise를 반환합니다. 아래 표나 사이드바에서 객체 타입을 고르십시오.

Generated from the SDK type definitions

Word · 객체 타입 14개 · 메서드 259개 · 네임스페이스 Word. 이 레퍼런스는 SDK 빌드와 함께 생성된 API 문서 아티팩트(sdk-api-doc.html)에서 생성됩니다. 설명은 게시된 편집기 API 주석 그대로입니다. SDK와 Office 버전을 함께 고정하고, 둘 중 하나가 바뀌면 다시 생성하십시오.

객체 타입메서드얻는 방법
Word.Document37app.getDocument()
Word.Body24Document.getBody(), Section.getBody(), Section.getFooter(), …
Word.Section15Document.getSection(), Document.getSections(), Range.getParentSection()
Word.Paragraph44Document.getParagraph(), Body.getParagraph(), Body.getParagraphs(), …
Word.Range50Document.getRange(), Document.getSelection(), Body.getRange(), …
Word.Table22Document.getTable(), Body.insertTable(), Paragraph.getParentTable(), …
Word.TableRow6Table.getRow(), Table.insertRow()
Word.TableCell10Paragraph.getParentTableCell(), Table.getCell(), TableRow.getCell(), …
Word.Shape18Document.getShape(), Document.getShapes(), Paragraph.insertShape(), …
Word.Image18Paragraph.insertImage(), Paragraph.insertWebVideo(), Range.insertImage(), …
Word.Bookmark5Document.getBookmark(), Document.getBookmarks(), Range.getBookmarks(), …
Word.Hyperlink8Document.getHyperlink(), Document.getHyperlinks(), Range.getHyperlink(), …
Word.List2Paragraph.getList()
Word.DocumentInfo0-

상수 멤버는 Word.* 페이지에 있습니다.