
CVE-2023-30533 및 CVE-2024-22363 수정 사항이 포함된 SheetJS xlsx 0.18.5 포크
SheetJS Community Edition은 거의 모든 복잡한 스프레드시트에서 유용한 데이터를 추출하고, 레거시 및 최신 소프트웨어 모두에서 작동하는 새 스프레드시트를 생성하기 위한 실전 검증된 오픈소스 솔루션을 제공합니다.
SheetJS Pro는 데이터 처리 그 이상의 솔루션을 제공합니다: 복잡한 템플릿을 쉽게 편집하고, 스타일링으로 내면의 피카소를 꺼내며, 이미지/그래프/피벗 테이블이 있는 사용자 지정 시트를 만들고, 수식 표현식을 평가하고 계산을 웹 앱으로 포팅하며, 일반적인 스프레드시트 작업을 자동화하는 등 훨씬 더 많은 기능을 제공합니다!
지원되는 파일 형식


독립형 브라우저 스크립트
완전한 브라우저 독립형 빌드는 dist/xlsx.full.min.js에 저장되며
script 태그를 사용하여 페이지에 직접 추가할 수 있습니다:```html
<details>
<summary><b>CDN 가용성</b> (클릭하여 표시)</summary>
| CDN | URL |
|-----------:|:-------------------------------------------|
| `unpkg` | <https://unpkg.com/xlsx/> |
| `jsDelivr` | <https://jsdelivr.com/package/npm/xlsx> |
| `CDNjs` | <https://cdnjs.com/libraries/xlsx> |
예를 들어, `unpkg`는 최신 버전을 다음 URL에서 제공합니다:```html
<script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
완전한 단일 파일 버전은 dist/xlsx.full.min.js로 생성됩니다.
dist/xlsx.core.min.js는 코드페이지 라이브러리를 생략합니다(XLS 인코딩 미지원).
dist/xlsx.mini.min.js에서 더 슬림한 빌드가 생성됩니다. 전체 빌드와 비교하면:
bower 사용:```bash $ bower install js-xlsx
**ECMAScript 모듈**
ECMAScript 모듈 빌드는 `xlsx.mjs`에 저장되며
`type=module`을 사용하는 `script` 태그로 페이지에 직접 추가할 수 있습니다:```html
<script type="module">
import { read, writeFileXLSX } from "./xlsx.mjs";
/* load the codepage support library for extended support with older formats */
import { set_cptable } from "./xlsx.mjs";
import * as cptable from './dist/cpexcel.full.mjs';
set_cptable(cptable);
</script>
npm 패키지는 module 매개변수와 함께 모듈을 노출하며,
Angular 및 기타 프로젝트에서 지원됩니다:```ts
import { read, writeFileXLSX } from "xlsx";
/* load the codepage support library for extended support with older formats */ import { set_cptable } from "xlsx"; import * as cptable from 'xlsx/dist/cpexcel.full.mjs'; set_cptable(cptable);
**Deno**
`xlsx.mjs`는 Deno에서 가져올 수 있습니다. `unpkg`에서 사용할 수 있습니다:```ts
// @deno-types="https://unpkg.com/xlsx/types/index.d.ts"
import * as XLSX from 'https://unpkg.com/xlsx/xlsx.mjs';
/* load the codepage support library for extended support with older formats */
import * as cptable from 'https://unpkg.com/xlsx/dist/cpexcel.full.mjs';
XLSX.set_cptable(cptable);
NodeJS
npm으로:```bash $ npm install xlsx
기본적으로, 모듈은 `require`를 지원합니다:```js
var XLSX = require("xlsx");
이 모듈은 import와 함께 사용할 수 있도록 xlsx.mjs도 제공합니다:```js
import * as XLSX from 'xlsx/xlsx.mjs';
/* load 'fs' for readFile and writeFile support */ import * as fs from 'fs'; XLSX.set_fs(fs);
/* load 'stream' for stream support */ import { Readable } from 'stream'; XLSX.stream.set_readable(Readable);
/* load the codepage support library for extended support with older formats */ import * as cpexcel from 'xlsx/dist/cpexcel.full.mjs'; XLSX.set_cptable(cpexcel);
**Photoshop 및 InDesign**
`dist/xlsx.extendscript.js`는 Photoshop 및 InDesign용 ExtendScript 빌드이며,
`npm` 패키지에 포함되어 있습니다. `#include` 지시문으로
직접 참조할 수 있습니다:```extendscript
#include "xlsx.extendscript.js"
JavaScript 엔진과의 광범위한 호환성을 위해 라이브러리는
ECMAScript 3 언어 방언과 Array#forEach와 같은 일부 ES5 기능을 사용하여 작성되었습니다.
오래된 브라우저에서는 누락된 기능을 제공하는 shim이 필요합니다.
shim을 사용하려면 xlsx.js를 로드하는 script 태그 앞에 shim을 추가하십시오:```html
이 스크립트는 Internet Explorer 6~9 버전에서 파일을 로드하고 저장하기 위한
`IE_LoadFile` 및 `IE_SaveFile`도 포함합니다. `xlsx.extendscript.js` 스크립트는
Photoshop 및 기타 Adobe 제품에 적합한 형식으로 이 shim을 번들로 제공합니다.
</details>
### 사용법
스프레드시트와 데이터를 다루는 대부분의 시나리오는 5가지 부분으로 나눌 수 있습니다: