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를 반환합니다.
아래 표나 사이드바에서 객체 타입을 고르십시오.
Word · 객체 타입 14개 · 메서드 259개 · 네임스페이스 Word. 이 레퍼런스는 SDK 빌드와 함께 생성된 API 문서 아티팩트(sdk-api-doc.html)에서 생성됩니다. 설명은 게시된 편집기 API 주석 그대로입니다. SDK와 Office 버전을 함께 고정하고, 둘 중 하나가 바뀌면 다시 생성하십시오.
| 객체 타입 | 메서드 | 얻는 방법 |
|---|---|---|
Word.Document | 37 | app.getDocument() |
Word.Body | 24 | Document.getBody(), Section.getBody(), Section.getFooter(), … |
Word.Section | 15 | Document.getSection(), Document.getSections(), Range.getParentSection() |
Word.Paragraph | 44 | Document.getParagraph(), Body.getParagraph(), Body.getParagraphs(), … |
Word.Range | 50 | Document.getRange(), Document.getSelection(), Body.getRange(), … |
Word.Table | 22 | Document.getTable(), Body.insertTable(), Paragraph.getParentTable(), … |
Word.TableRow | 6 | Table.getRow(), Table.insertRow() |
Word.TableCell | 10 | Paragraph.getParentTableCell(), Table.getCell(), TableRow.getCell(), … |
Word.Shape | 18 | Document.getShape(), Document.getShapes(), Paragraph.insertShape(), … |
Word.Image | 18 | Paragraph.insertImage(), Paragraph.insertWebVideo(), Range.insertImage(), … |
Word.Bookmark | 5 | Document.getBookmark(), Document.getBookmarks(), Range.getBookmarks(), … |
Word.Hyperlink | 8 | Document.getHyperlink(), Document.getHyperlinks(), Range.getHyperlink(), … |
Word.List | 2 | Paragraph.getList() |
Word.DocumentInfo | 0 | - |
상수 멤버는 Word.* 페이지에 있습니다.