Hợp nhất tiêu đề exceljs

Các phương pháp sau đây có sẵn để quản lý ô hợp nhất. setMerge, getMerge, removeMerge, destroyMerge

Merge cell A3 [colspan. 2, rowspan. 2] Destroy merge from A3 Get all merged cells Destroy all merged

Source code










Merge cell A3 [colspan: 2, rowspan: 2]
Destroy merge from A3
Get all merged cells
Destroy all merged


I am trying to read from a excel file, manipulate some data and write to another excel. I am seeing a weird issue when adding rows which have merged cells. Chúng không được thêm vào như mong đợi trong tệp đích, các hàng có vẻ không được hợp nhất

Below is the relevant part of the code. I am using

workbook.views = [

  {

    x: 0, y: 0, width: 10000, height: 20000,

    firstSheet: 0, activeTab: 1, visibility: 'visible'

  }

]

2 and

workbook.views = [

  {

    x: 0, y: 0, width: 10000, height: 20000,

    firstSheet: 0, activeTab: 1, visibility: 'visible'

  }

]

3

const readerOptions = {
sharedStrings: 'cache',
 hyperlinks: 'cache',
 worksheets: 'emit',
 styles: 'cache',
};
const writerOptions = {
 filename: fpath,
 useStyles: true,
 useSharedStrings: true
}
const workbook = new ExcelJS.stream.xlsx.WorkbookWriter[writerOptions]
const myworksheet = workbook.addWorksheet['Sheet 1'];
const workbookReader = new ExcelJS.stream.xlsx.WorkbookReader[sheet.path, readerOptions];
workbookReader.read[];
workbookReader.on['worksheet', worksheet => {
 worksheet.on['row', row => {
  const r = myworksheet.addRow[];
  Object.assign[r, row];
 }];
}];

workbookReader.on['end', async [] => {
 await workbook.commit[];
}];

Please find the below images for your reference. first image is actual_result. png and second image is expected_result. png

Contributions are very welcome. It helps me know what features are desired or what bugs are causing the most pain

I have just one request; If you submit a pull request for a bugfix, please add a unit-test or integration-test [in the spec folder] that catches the problem. Even a PR that just has a failing test is fine - I can analyse what the test is doing and fix the code from that

To be clear, all contributions added to this library will be included in the library's MIT licence

Backlog
  • ESLint - slowly turn on [justifyable] rules which should, I hope, help make contributions easier
  • Conditional Formatting
  • There are still more print-settings to add; Fixed rows/cols, etc
  • XLSX Streaming Reader
  • Parsing CSV with Headers
Contents
  • Interface
    • Create a Workbook
    • Set Workbook Properties
    • Workbook Views
    • Add a Worksheet
    • Remove a Worksheet
    • Access Worksheets
    • Worksheet State
    • Worksheet Properties
    • Page Setup
    • Headers and Footers
    • Worksheet Views
      • Lượt xem bị đóng băng
      • Chia nhỏ lượt xem
    • Bộ lọc tự động
    • Cột
    • hàng
    • Xử lý các ô riêng lẻ
    • Các ô đã hợp nhất
    • Defined Names
    • Data Validations
    • Nhận xét di động
    • Những cái bàn
    • phong cách
      • Number Formats
      • Phông chữ
      • căn chỉnh
      • biên giới
      • lấp đầy
      • Rich Text
    • Cấp phác thảo
    • Hình ảnh
    • Tập tin vào/ra
      • XLSX
        • Đọc XLSX
        • Viết XLSX
      • CSV
        • Đọc CSV
        • Viết CSV
      • Truyền I/O
        • Streaming XLSX
  • trình duyệt
  • Value Types
    • Giá trị Null
    • Hợp nhất tế bào
    • Giá trị số
    • Chuỗi giá trị
    • Giá trị ngày
    • Giá trị siêu liên kết
    • Giá trị công thức
      • Công thức chia sẻ
      • Formula Type
    • Giá trị văn bản đa dạng thức
    • Giá trị Boolean
    • Giá trị lỗi
  • cấu hình
  • Vấn đề đã biết
  • Lịch sử phát hành
Interface

nhập khẩu

The default export is a transpiled ES5 version with a Promise polyfill - this offers the highest level of compatibility

var Excel = require['exceljs'];

import Excel from 'exceljs';

Tuy nhiên, nếu bạn sử dụng thư viện này trên một nút hiện đại. js [>=8] hoặc trên giao diện người dùng bằng cách sử dụng gói [hoặc có thể chỉ tập trung vào các trình duyệt thường xanh], chúng tôi khuyên bạn nên sử dụng các lần nhập này

const Excel = require['exceljs/modern.nodejs'];

import Excel from 'exceljs/modern.browser';

Create a Workbook

var workbook = new Excel.Workbook[];

Set Workbook Properties

workbook.creator = 'Me';

workbook.lastModifiedBy = 'Her';

workbook.created = new Date[1985, 8, 30];

workbook.modified = new Date[];

workbook.lastPrinted = new Date[2016, 9, 27];

// Set workbook dates to 1904 date system

workbook.properties.date1904 = true;

Workbook Views

Chế độ xem sổ làm việc kiểm soát số lượng cửa sổ riêng biệt mà Excel sẽ mở khi xem sổ làm việc

workbook.views = [

  {

    x: 0, y: 0, width: 10000, height: 20000,

    firstSheet: 0, activeTab: 1, visibility: 'visible'

  }

]

Add a Worksheet

________số 8

Sử dụng tham số thứ hai của hàm addWorksheet để chỉ định các tùy chọn cho trang tính

Ví dụ

// create a sheet with red tab colour

var sheet = workbook.addWorksheet['My Sheet', {properties:{tabColor:{argb:'FFC0000'}}}];

 

// create a sheet where the grid lines are hidden

var sheet = workbook.addWorksheet['My Sheet', {properties: {showGridLines: false}}];

 

// create a sheet with the first row and column frozen

var sheet = workbook.addWorksheet['My Sheet', {views:[{xSplit: 1, ySplit:1}]}];

Remove a Worksheet

Sử dụng trang tính

workbook.views = [

  {

    x: 0, y: 0, width: 10000, height: 20000,

    firstSheet: 0, activeTab: 1, visibility: 'visible'

  }

]

9 để xóa trang tính khỏi sổ làm việc

Ví dụ

const readerOptions = {
sharedStrings: 'cache',
 hyperlinks: 'cache',
 worksheets: 'emit',
 styles: 'cache',
};
const writerOptions = {
 filename: fpath,
 useStyles: true,
 useSharedStrings: true
}
const workbook = new ExcelJS.stream.xlsx.WorkbookWriter[writerOptions]
const myworksheet = workbook.addWorksheet['Sheet 1'];
const workbookReader = new ExcelJS.stream.xlsx.WorkbookReader[sheet.path, readerOptions];
workbookReader.read[];
workbookReader.on['worksheet', worksheet => {
 worksheet.on['row', row => {
  const r = myworksheet.addRow[];
  Object.assign[r, row];
 }];
}];

workbookReader.on['end', async [] => {
 await workbook.commit[];
}];
1

Access Worksheets

var Excel = require['exceljs'];

import Excel from 'exceljs';

0

Worksheet State

var Excel = require['exceljs'];

import Excel from 'exceljs';

1

Worksheet Properties

Trang tính hỗ trợ nhóm thuộc tính để cho phép kiểm soát một số tính năng của trang tính

var Excel = require['exceljs'];

import Excel from 'exceljs';

2

Thuộc tính được hỗ trợ

NameDefaultDescriptiontabColorundefinedMàu của các taboutlineLevelCol0Cột bảng tính mức phác thảooutlineLevelRow0Mức phác thảo hàng của bảng tínhdefaultRowHeight15Chiều cao hàng mặc địnhdyDescent55TBD

Số liệu trang tính

Một số chỉ số mới đã được thêm vào Worksheet

NameDescriptionrowCountTổng kích thước hàng của tài liệu. Bằng số hàng của hàng cuối cùng có giá trị. factRowCountMột số lượng hàng có giá trị. Nếu một hàng giữa tài liệu trống, nó sẽ không được tính vào số lượng. columnCountTổng kích thước cột của tài liệu. Bằng số lượng ô tối đa từ tất cả các hàngactualColumnCountMột số lượng cột có giá trị

Page Setup

Tất cả các thuộc tính có thể ảnh hưởng đến việc in trang tính được giữ trong đối tượng pageSetup trên trang tính

var Excel = require['exceljs'];

import Excel from 'exceljs';

3

Trang được hỗ trợThiết lập cài đặt

NameDefaultDescriptionmarginsWhitespace on the borders of the page. Units are inches. orientation'portrait'Orientation of the page - i. e. taller [portrait] or wider [landscape]horizontalDpi4294967295Horizontal Dots per Inch. Default value is -1verticalDpi4294967295Vertical Dots per Inch. Default value is -1fitToPageWhether to use fitToWidth and fitToHeight or scale settings. Default is based on presence of these settings in the pageSetup object - if both are present, scale wins [i. e. default will be false]pageOrder'downThenOver'Which order to print the pages - one of ['downThenOver', 'overThenDown']blackAndWhitefalsePrint without colourdraftfalsePrint with less quality [and ink]cellComments'None'Where to place comments - one of ['atEnd', 'asDisplayed', 'None']errors'displayed'Where to show errors - one of ['dash', 'blank', 'NA', 'displayed']scale100Percentage value to increase or reduce the size of the print. Active when fitToPage is falsefitToWidth1How many pages wide the sheet should print on to. Active when fitToPage is truefitToHeight1How many pages high the sheet should print on to. Active when fitToPage is truepaperSizeWhat paper size to use [see below]showRowColHeadersfalseWhether to show the row numbers and column lettersshowGridLinesfalseWhether to show grid linesfirstPageNumberWhich number to use for the first pagehorizontalCenteredfalseWhether to center the sheet data horizontallyverticalCenteredfalseWhether to center the sheet data vertically

Example Paper Sizes

NameValueLetterundefinedLegal5Executive7A49A511B5 [JIS]13Envelope #1020Envelope DL27Envelope C528Envelope B534Envelope Monarch37Double Japan Postcard Rotated8216K 197x273 mm119

Headers and Footers

Here's how to add headers and footers. The added content is mainly text, such as time, introduction, file information, etc. , and you can set the style of the text. In addition, you can set different texts for the first page and even page

Note. Images are not currently supported

var Excel = require['exceljs'];

import Excel from 'exceljs';

4

Supported headerFooter settings

NameDefaultDescriptiondifferentFirstfalseSet the value of differentFirst as true, which indicates that headers/footers for first page are different from the other pagesdifferentOddEvenfalseSet the value of differentOddEven as true, which indicates that headers/footers for odd and even pages are differentoddHeadernullSet header string for odd[default] pages, could format the stringoddFooternullSet footer string for odd[default] pages, could format the stringevenHeadernullSet header string for even pages, could format the stringevenFooternullSet footer string for even pages, could format the stringfirstHeadernullSet header string for the first page, could format the stringfirstFooternullSet footer string for the first page, could format the string

Script Commands

CommandsDescription&LSet position to the left&CSet position to the center&RSet position to the right&PThe current page number&NThe total number of pages&DThe current date&TThe current time&GA picture&AThe worksheet name&FThe file name&BMake text bold&IItalicize text&UUnderline text&"font name"font name, for example &"Aril"&font sizefont size, for example 12&KHEXCodefont color, for example &KCCCCCC

Worksheet Views

Worksheets now support a list of views, that control how Excel presents the sheet

  • frozen - where a number of rows and columns to the top and left are frozen in place. Only the bottom left section will scroll
  • split - where the view is split into 4 sections, each semi-independently scrollable

Each view also supports various properties

NameDefaultDescriptionstate'normal'Controls the view state - one of normal, frozen or splitrightToLeftfalseSets the worksheet view's orientation to right-to-leftactiveCellundefinedThe currently selected cellshowRulertrueShows or hides the ruler in Page LayoutshowRowColHeaderstrueShows or hides the row and column headers [e. g. A1, B1 at the top and 1,2,3 on the leftshowGridLinestrueShows or hides the gridlines [shown for cells where borders have not been defined]zoomScale100Percentage zoom to use for the viewzoomScaleNormal100Normal zoom for the viewstyleundefinedPresentation style - one of pageBreakPreview or pageLayout. Note pageLayout is not compatable with frozen views

Lượt xem bị đóng băng

Frozen views support the following extra properties

NameDefaultDescriptionxSplit0How many columns to freeze. To freeze rows only, set this to 0 or undefinedySplit0How many rows to freeze. To freeze columns only, set this to 0 or undefinedtopLeftCellspecialWhich cell will be top-left in the bottom-right pane. Note. cannot be a frozen cell. Defaults to first unfrozen cell

var Excel = require['exceljs'];

import Excel from 'exceljs';

5

Chia nhỏ lượt xem

Split views support the following extra properties

NameDefaultDescriptionxSplit0How many points from the left to place the splitter. To split vertically, set this to 0 or undefinedySplit0How many points from the top to place the splitter. To split horizontally, set this to 0 or undefinedtopLeftCellundefinedWhich cell will be top-left in the bottom-right pane. activePaneundefinedWhich pane will be active - one of topLeft, topRight, bottomLeft and bottomRight

var Excel = require['exceljs'];

import Excel from 'exceljs';

6

Auto filters

It is possible to apply an auto filter to your worksheet

var Excel = require['exceljs'];

import Excel from 'exceljs';

7

Mặc dù chuỗi phạm vi là dạng tiêu chuẩn của Bộ lọc tự động, trang tính cũng sẽ hỗ trợ các giá trị sau

var Excel = require['exceljs'];

import Excel from 'exceljs';

8

Cột

var Excel = require['exceljs'];

import Excel from 'exceljs';

9

hàng

const Excel = require['exceljs/modern.nodejs'];

import Excel from 'exceljs/modern.browser';

0

Xử lý các ô riêng lẻ

const Excel = require['exceljs/modern.nodejs'];

import Excel from 'exceljs/modern.browser';

1

Các ô đã hợp nhất

const Excel = require['exceljs/modern.nodejs'];

import Excel from 'exceljs/modern.browser';

2

Defined Names

Các ô riêng lẻ [hoặc nhiều nhóm ô] có thể được gán tên cho chúng. Tên có thể được sử dụng trong công thức và xác thực dữ liệu [và có thể hơn thế nữa]

const Excel = require['exceljs/modern.nodejs'];

import Excel from 'exceljs/modern.browser';

3

Data Validations

Các ô có thể xác định giá trị nào hợp lệ hoặc không và cung cấp lời nhắc cho người dùng để giúp hướng dẫn họ

Các loại xác thực có thể là một trong những loại sau

TypeDescriptionlistXác định một tập hợp các giá trị hợp lệ riêng biệt. Excel sẽ cung cấp những giá trị này trong danh sách thả xuống để dễ dàng nhập toàn bộ Giá trị phải là số nguyên thập phân Giá trị phải là số thập phân văn bản Độ dài Giá trị có thể là văn bản nhưng độ dài được kiểm soát tùy chỉnh Một công thức tùy chỉnh kiểm soát các giá trị hợp lệ

Đối với các loại không phải danh sách hoặc tùy chỉnh, các toán tử sau ảnh hưởng đến việc xác thực

Toán tử Mô tảbetweenValues ​​phải nằm giữa các kết quả công thứckhông phảiBetweenValues ​​không được nằm giữa các kết quả của công thứcrequalValue phải bằng công thức resultnotEqualValue không được bằng công thức resultgreaterThanValue phải lớn hơn công thức resultlessThanValue phải nhỏ hơn công thức resultGreaterThanOrEqualValue phải lớn hơn hoặc bằng công thức resultlessThanOrEqualValue phải nhỏ hơn hoặc bằng công thức

const Excel = require['exceljs/modern.nodejs'];

import Excel from 'exceljs/modern.browser';

4

Nhận xét di động

Thêm nhận xét kiểu cũ vào một ô

const Excel = require['exceljs/modern.nodejs'];

import Excel from 'exceljs/modern.browser';

5

Những cái bàn

Các bảng cho phép thao tác trong bảng đối với dữ liệu dạng bảng

Để thêm bảng vào trang tính, hãy xác định mô hình bảng và gọi addTable

const Excel = require['exceljs/modern.nodejs'];

import Excel from 'exceljs/modern.browser';

6

Ghi chú. Việc thêm bảng vào trang tính sẽ sửa đổi trang tính bằng cách đặt tiêu đề và dữ liệu hàng vào trang tính. Mọi dữ liệu trên trang tính được bao phủ bởi bảng kết quả [bao gồm cả tiêu đề và tổng số] sẽ bị ghi đè

Thuộc tính bảng

Bảng sau đây xác định các thuộc tính được hỗ trợ bởi các bảng

Thuộc tính bảng Mô tảBắt buộcGiá trị mặc địnhTên của bảngYdisplayNameTên hiển thị của bảngNnamerefÔ trên cùng bên trái của bảngYheaderRowHiển thị các tiêu đề ở đầu bảngNtruetotalsRowHiển thị tổng số ở cuối bảngNfalsestyleThuộc tính kiểu bổ sungN{}cộtĐịnh nghĩa cộtYrowsHàng của dữ liệuY

Thuộc tính kiểu bảng

Bảng sau đây xác định các thuộc tính được hỗ trợ trong thuộc tính kiểu bảng

Thuộc tính kiểu Mô tảBắt buộcGiá trị mặc địnhChủ đềChủ đề màu của bảngN'TableStyleMedium2'showĐầu tiênCộtĐánh dấu cột đầu tiên [đậm]NfalseshowLastColumnĐánh dấu cột cuối cùng [đậm]NfalseshowRowStripesCác hàng thay thế được hiển thị với màu nềnNfalseshowColumnStripesCác hàng xen kẽ được hiển thị với màu nềnNfalse

Thuộc tính cột bảng

Bảng sau đây xác định các thuộc tính được hỗ trợ trong mỗi cột của bảng

Thuộc tính cộtMô tảBắt buộcGiá trị mặc địnhTên của cột, cũng được sử dụng trong tiêu đềYfilterButtonChuyển điều khiển bộ lọc trong tiêu đềNfalsetotalsRowLabelNhãn để mô tả hàng tổng [cột đầu tiên]N'Total'totalsRowFunctionTên của hàm tổngN'none'totalsRowFormulaCông thức tùy chọn cho hàm tùy chỉnhN

Hàm tổng

The following table list the valid values for the totalsRowFunction property defined by columns. If any value other than 'custom' is used, it is not necessary to include the associated formula as this will be inserted by the table

Tổng HàmMô tảkhông cóKhông có hàm tổng nào cho cột nàytrung bìnhTính trung bình cho cộtđếmNumsĐếm mục nhập là sốđếmĐếm mục nhậpmaxGiá trị lớn nhất trong cột nàyminGiá trị nhỏ nhất trong cột nàystdDevĐộ lệch chuẩn cho cột nàyvarPhương sai cho cột nàytùy chỉnhCông thức tùy chỉnh. Yêu cầu một giá trị totalsRowFormula được liên kết

Table Style Themes

Tên chủ đề hợp lệ tuân theo mẫu sau

  • "Kiểu bảng [Bóng tối] [Số]"

Shades, Numbers có thể là một trong

  • Ánh sáng, 1-21
  • Trung bình, 1-28
  • Tối, 1-11

For no theme, use the value null

Ghi chú. chủ đề bảng tùy chỉnh chưa được exceljs hỗ trợ

phong cách

Mỗi ô, hàng và cột hỗ trợ một tập hợp phong phú các kiểu và định dạng ảnh hưởng đến cách các ô được hiển thị

Các kiểu được đặt bằng cách gán các thuộc tính sau

  • numFmt
  • nét chữ
  • căn chỉnh
  • ranh giới
  • lấp đầy

const Excel = require['exceljs/modern.nodejs'];

import Excel from 'exceljs/modern.browser';

7

Khi một kiểu được áp dụng cho một hàng hoặc cột, nó sẽ được áp dụng cho tất cả các ô hiện có trong hàng hoặc cột đó. Ngoài ra, bất kỳ ô mới nào được tạo sẽ kế thừa các kiểu ban đầu của nó từ hàng và cột mà ô đó thuộc về

Nếu cả hàng và cột của một ô đều xác định một kiểu cụ thể [e. g. phông chữ], ô sẽ sử dụng kiểu hàng trên kiểu cột. Tuy nhiên, nếu hàng và cột xác định các kiểu khác nhau [e. g. cột. numFmt và hàng. phông chữ], ô sẽ kế thừa phông chữ từ hàng và numFmt từ cột

báo trước. All the above properties [with the exception of numFmt, which is a string], are JS object structures. Nếu cùng một đối tượng kiểu được gán cho nhiều thực thể bảng tính thì mỗi thực thể sẽ chia sẻ cùng một đối tượng kiểu. Nếu đối tượng kiểu được sửa đổi sau đó trước khi bảng tính được đánh số thứ tự, thì tất cả các thực thể tham chiếu đến đối tượng kiểu đó cũng sẽ được sửa đổi. This behaviour is intended to prioritize performance by reducing the number of JS objects created. Nếu bạn muốn các đối tượng kiểu độc lập, bạn cần sao chép chúng trước khi gán chúng. Ngoài ra, theo mặc định, khi tài liệu được đọc từ tệp [hoặc luồng] nếu các thực thể bảng tính có chung kiểu, thì chúng cũng sẽ tham chiếu cùng một đối tượng kiểu

Number Formats

const Excel = require['exceljs/modern.nodejs'];

import Excel from 'exceljs/modern.browser';

8

Phông chữ

const Excel = require['exceljs/modern.nodejs'];

import Excel from 'exceljs/modern.browser';

9

Thuộc tính phông chữ Mô tả Ví dụ Giá trị tên Tên phông chữ. 'Arial', 'Calibri', v.v. familyFont family cho dự phòng. Một giá trị số nguyên. 1 - Serif, 2 - Sans Serif, 3 - Mono, Khác - sơ đồ phông chữ không xác định. 'phụ', 'chính', 'không'bộ ký tựBộ ký tự phông chữ. Một giá trị số nguyên. 1, 2, v.v. kích thước cỡ chữ. Một giá trị số nguyên. 9, 10, 12, 16, v.v. mô tả colorColour, một đối tượng chứa giá trị ARGB. { argb. 'FFFF0000'}trọng số phông chữ đậmtrue, falseitalicPhông chữ độ dốctrue, falseunderlineKiểu gạch chân phông chữtrue, false, 'none', 'single', 'double', 'singleAccounting', 'doubleAccounting'strikeFont gạch ngang quatrue, falseoutlinePhông ngoài phông chữtrue, falsevertCăn chỉnh dọc'chỉ số trên', 'chỉ số dưới'

căn chỉnh

var workbook = new Excel.Workbook[];

0

Giá trị thuộc tính căn chỉnh hợp lệ

ngang dọc bao bọc Văn bản thụt lề đọc Thứ tựvăn bảnXoay tráitrên cùngđúngsố nguyênrtl0 đến 90trung tâmfalstr-1 đến -90phảidưới cùngdọcđiềnphân phốibiện minhbiện minhtrung tâmLiên tụcphân phối

biên giới

var workbook = new Excel.Workbook[];

1

Valid Border Styles

  • thin
  • dotted
  • dashDot
  • hair
  • dashDotDot
  • slantDashDot
  • mediumDashed
  • mediumDashDotDot
  • mediumDashDot
  • medium
  • double
  • dày

lấp đầy

var workbook = new Excel.Workbook[];

2

Pattern Fills

PropertyRequiredDescriptiontypeYValue. 'pattern'
Specifies this fill uses patternspatternYSpecifies type of pattern [see Valid Pattern Types below]fgColorNSpecifies the pattern foreground color. Default is black. bgColorNSpecifies the pattern background color. Default is white

Các loại mẫu hợp lệ

  • không ai
  • chất rắn
  • màu xám đen
  • trung bìnhXám
  • xám nhạt
  • xám125
  • xám0625
  • tốiNgang
  • tốiDọc
  • bóng tối
  • tốiUp
  • lưới tối
  • bóng tốiTrellis
  • ánh sáng Ngang
  • ánh sángDọc
  • ánh sáng xuống
  • chiếu sáng
  • ánh sángLưới
  • ánh sángTrellis

Đổ dốc màu

PropertyRequiredDescriptiontypeYValue. 'gradient'
Chỉ định màu tô này sử dụng gradientsgradientYSChỉ định loại gradient. Một trong ['góc', 'đường dẫn']độ gócĐối với độ dốc 'góc', chỉ định hướng của độ dốc. 0 là từ trái sang phải. Các giá trị từ 1 - 359 xoay hướng theo chiều kim đồng hồđường tâm đạoĐối với độ dốc 'đường dẫn'. Chỉ định tọa độ tương đối cho điểm bắt đầu của đường dẫn. Các giá trị 'trái' và 'trên cùng' nằm trong khoảng từ 0 đến 1 điểm dừngYChỉ định chuỗi màu gradient. Là một mảng các đối tượng chứa vị trí và màu sắc bắt đầu từ vị trí 0 và kết thúc bằng vị trí 1. Các vị trí trung gian có thể được sử dụng để chỉ định các màu khác trên đường dẫn.

Hãy cẩn thận

Sử dụng giao diện ở trên, có thể tạo các hiệu ứng tô màu chuyển sắc không thể thực hiện được bằng chương trình soạn thảo XLSX. Ví dụ: Excel chỉ hỗ trợ độ dốc góc là 0, 45, 90 và 135. Tương tự, chuỗi các điểm dừng cũng có thể bị giới hạn bởi giao diện người dùng với các vị trí [0,1] hoặc [0,0. 5,1] là tùy chọn duy nhất. Hãy cẩn thận với phần điền này để đảm bảo nó được người xem XLSX mục tiêu hỗ trợ

Rich Text

Các ô riêng lẻ hiện hỗ trợ văn bản có định dạng hoặc định dạng trong ô. Các giá trị văn bản có định dạng có thể kiểm soát các thuộc tính phông chữ của bất kỳ số lượng chuỗi con nào trong giá trị văn bản. Xem Phông chữ để biết danh sách chi tiết đầy đủ về những thuộc tính phông chữ nào được hỗ trợ

var workbook = new Excel.Workbook[];

3

Cấp phác thảo

Excel hỗ trợ lập dàn ý;

Mức độ phác thảo có thể được xác định trong thiết lập cột

var workbook = new Excel.Workbook[];

4

Hoặc trực tiếp trên hàng hoặc cột

var workbook = new Excel.Workbook[];

5

Các mức phác thảo trang tính có thể được đặt trên trang tính

var workbook = new Excel.Workbook[];

6

Ghi chú. điều chỉnh mức đại cương trên hàng hoặc cột hoặc mức đại cương trên trang tính sẽ phát sinh tác dụng phụ của việc sửa đổi thuộc tính thu gọn của tất cả các hàng hoặc cột bị ảnh hưởng bởi thay đổi thuộc tính. e. g

var workbook = new Excel.Workbook[];

7

Các thuộc tính phác thảo có thể được thiết lập trên trang tính

var workbook = new Excel.Workbook[];

8

Hình ảnh

Thêm hình ảnh vào trang tính là quy trình gồm hai bước. Đầu tiên, hình ảnh được thêm vào sổ làm việc thông qua hàm addImage[], hàm này cũng sẽ trả về giá trị imageId. Then, using the imageId, the image can be added to the worksheet either as a tiled background or covering a cell range

Ghi chú. Kể từ phiên bản này, điều chỉnh hoặc chuyển đổi hình ảnh không được hỗ trợ

Thêm hình ảnh vào sổ làm việc

sổ làm việc. Hàm addImage hỗ trợ thêm hình ảnh theo tên tệp hoặc theo Bộ đệm. Lưu ý rằng trong cả hai trường hợp, phần mở rộng phải được chỉ định. Các giá trị tiện ích mở rộng hợp lệ bao gồm 'jpeg', 'png', 'gif'

var workbook = new Excel.Workbook[];

9

Thêm hình nền vào trang tính

Sử dụng id hình ảnh từ Workbook. addImage, nền cho trang tính có thể được đặt bằng hàm addBackgroundImage

workbook.creator = 'Me';

workbook.lastModifiedBy = 'Her';

workbook.created = new Date[1985, 8, 30];

workbook.modified = new Date[];

workbook.lastPrinted = new Date[2016, 9, 27];

0

Thêm hình ảnh trên một phạm vi

Sử dụng id hình ảnh từ Workbook. addImage, một hình ảnh có thể được nhúng trong trang tính để bao phủ một phạm vi. Các tọa độ được tính từ phạm vi sẽ bao gồm từ trên cùng bên trái của ô đầu tiên đến dưới cùng bên phải của ô thứ hai

workbook.creator = 'Me';

workbook.lastModifiedBy = 'Her';

workbook.created = new Date[1985, 8, 30];

workbook.modified = new Date[];

workbook.lastPrinted = new Date[2016, 9, 27];

1

Sử dụng một cấu trúc thay vì một chuỗi phạm vi, có thể che phủ một phần các ô

Lưu ý rằng hệ tọa độ được sử dụng cho điều này dựa trên số 0, vì vậy phía trên bên trái của A1 sẽ là { col. 0, hàng. 0 }. Phân số của các ô có thể được chỉ định bằng cách sử dụng số dấu chấm động, e. g. trung điểm của A1 là { col. 0. 5, hàng. 0. 5 }

workbook.creator = 'Me';

workbook.lastModifiedBy = 'Her';

workbook.created = new Date[1985, 8, 30];

workbook.modified = new Date[];

workbook.lastPrinted = new Date[2016, 9, 27];

2

Phạm vi ô cũng có thể có eproperty 'editAs' sẽ kiểm soát cách hình ảnh được neo vào [các] ô. Nó có thể có một trong các giá trị sau

ValueDescriptionundefinedĐây là giá trị mặc định. Nó chỉ định hình ảnh sẽ được di chuyển và định kích thước với các ôCellImage sẽ được di chuyển với các ô nhưng không có kích thướcabsoluteImage sẽ không được di chuyển hoặc định kích thước với các ô

workbook.creator = 'Me';

workbook.lastModifiedBy = 'Her';

workbook.created = new Date[1985, 8, 30];

workbook.modified = new Date[];

workbook.lastPrinted = new Date[2016, 9, 27];

3

Thêm hình ảnh vào một ô

Bạn có thể thêm hình ảnh vào một ô, sau đó xác định chiều rộng và chiều cao của nó bằng pixel ở 96dpi

workbook.creator = 'Me';

workbook.lastModifiedBy = 'Her';

workbook.created = new Date[1985, 8, 30];

workbook.modified = new Date[];

workbook.lastPrinted = new Date[2016, 9, 27];

4

Tập tin vào/ra

XLSX

Đọc XLSX

workbook.creator = 'Me';

workbook.lastModifiedBy = 'Her';

workbook.created = new Date[1985, 8, 30];

workbook.modified = new Date[];

workbook.lastPrinted = new Date[2016, 9, 27];

5

Viết XLSX

workbook.creator = 'Me';

workbook.lastModifiedBy = 'Her';

workbook.created = new Date[1985, 8, 30];

workbook.modified = new Date[];

workbook.lastPrinted = new Date[2016, 9, 27];

6

CSV

Đọc CSV

workbook.creator = 'Me';

workbook.lastModifiedBy = 'Her';

workbook.created = new Date[1985, 8, 30];

workbook.modified = new Date[];

workbook.lastPrinted = new Date[2016, 9, 27];

7

Trình phân tích cú pháp CSV sử dụng fast-csv để đọc tệp CSV. Các tùy chọn được chuyển vào các chức năng đọc ở trên cũng được chuyển tới fast-csv để phân tích cú pháp dữ liệu csv. Vui lòng tham khảo README nhanh csv. md để biết chi tiết

Ngày được phân tích cú pháp bằng thời điểm mô-đun npm. Nếu không có định dạng ngày tháng nào được cung cấp, những điều sau đây được sử dụng

  • chốc lát. ISO_8601
  • 'MM-DD-YYYY'
  • 'YYYY-MM-DD'

Viết CSV

workbook.creator = 'Me';

workbook.lastModifiedBy = 'Her';

workbook.created = new Date[1985, 8, 30];

workbook.modified = new Date[];

workbook.lastPrinted = new Date[2016, 9, 27];

8

Trình phân tích cú pháp CSV sử dụng fast-csv để ghi tệp CSV. Các tùy chọn được chuyển vào các hàm ghi ở trên cũng được chuyển tới fast-csv để ghi dữ liệu csv. Vui lòng tham khảo README nhanh csv. md để biết chi tiết

Ngày được định dạng bằng thời điểm mô-đun npm. Nếu không có dateFormat được cung cấp, thời điểm. ISO_8601 được sử dụng. Khi viết CSV, bạn có thể cung cấp boolean dateUTC là true để ExcelJS phân tích cú pháp ngày mà không tự động chuyển đổi múi giờ bằng cách sử dụng

var sheet = workbook.addWorksheet['My Sheet'];

0

Truyền I/O

Tệp I/O được ghi lại ở trên yêu cầu toàn bộ sổ làm việc được tạo trong bộ nhớ trước khi tệp có thể được ghi. Mặc dù thuận tiện nhưng nó có thể giới hạn kích thước của tài liệu do dung lượng bộ nhớ cần thiết

A streaming writer [or reader] processes the workbook or worksheet data as it is generated, converting it into file form as it goes. Thông thường, điều này hiệu quả hơn nhiều đối với bộ nhớ vì dung lượng bộ nhớ cuối cùng và thậm chí cả dung lượng bộ nhớ trung gian nhỏ gọn hơn nhiều so với phiên bản tài liệu, đặc biệt khi bạn xem xét rằng các đối tượng hàng và ô được xử lý sau khi chúng được cam kết

Giao diện của sổ làm việc và trang tính phát trực tuyến gần giống như các phiên bản tài liệu với một số khác biệt nhỏ về mặt thực tế

  • Sau khi một trang tính được thêm vào sổ làm việc, nó không thể bị xóa
  • Sau khi một hàng được cam kết, nó sẽ không thể truy cập được nữa vì nó sẽ bị xóa khỏi trang tính
  • unMerge Cells[] không được hỗ trợ

Lưu ý rằng có thể xây dựng toàn bộ sổ làm việc mà không cần cam kết bất kỳ hàng nào. Khi sổ làm việc được cam kết, tất cả các trang tính đã thêm [bao gồm tất cả các hàng không được cam kết] sẽ tự động được cam kết. Tuy nhiên, trong trường hợp này, sẽ thu được rất ít so với phiên bản Tài liệu

Streaming XLSX

Trình ghi XLSX trực tuyến

Trình ghi XLSX phát trực tuyến có sẵn trong ExcelJS. dòng. không gian tên xlsx

Hàm tạo lấy một đối tượng tùy chọn tùy chọn với các trường sau

FieldDescriptionstreamChỉ định luồng có thể ghi để ghi sổ làm việc XLSX vào. tên tệpNếu luồng không được chỉ định, trường này chỉ định đường dẫn đến tệp để ghi sổ làm việc XLSX vào. useSharedStringsChỉ định xem có sử dụng chuỗi chia sẻ trong sổ làm việc hay không. Mặc định là falseuseStylesChỉ định có thêm thông tin kiểu dáng vào sổ làm việc hay không. Các kiểu có thể thêm một số chi phí hoạt động. Mặc định là sai

Nếu cả luồng và tên tệp đều không được chỉ định trong các tùy chọn, trình ghi sổ làm việc sẽ tạo một đối tượng StreamBuf sẽ lưu trữ nội dung của sổ làm việc XLSX trong bộ nhớ. Đối tượng StreamBuf này, có thể được truy cập thông qua sổ làm việc thuộc tính. luồng, có thể được sử dụng để truy cập trực tiếp các byte theo luồng. read[] hoặc chuyển nội dung sang luồng khác

workbook.creator = 'Me';

workbook.lastModifiedBy = 'Her';

workbook.created = new Date[1985, 8, 30];

workbook.modified = new Date[];

workbook.lastPrinted = new Date[2016, 9, 27];

9

Nói chung, giao diện của trình ghi XLSX phát trực tuyến giống như sổ làm việc Tài liệu [và trang tính] được mô tả ở trên, trên thực tế, các đối tượng hàng, ô và kiểu đều giống nhau

Tuy nhiên có một số khác biệt

Xây dựng

Như đã thấy ở trên, WorkbookWriter thường sẽ yêu cầu luồng đầu ra hoặc tệp được chỉ định trong hàm tạo

Cam kết dữ liệu

Khi một hàng của trang tính đã sẵn sàng, nó phải được cam kết để có thể giải phóng đối tượng hàng và nội dung. Thông thường, điều này sẽ được thực hiện khi mỗi hàng được thêm vào

// Set workbook dates to 1904 date system

workbook.properties.date1904 = true;

0

Lý do WorksheetWriter không cam kết các hàng khi chúng được thêm vào là để cho phép các ô được hợp nhất trên các hàng

// Set workbook dates to 1904 date system

workbook.properties.date1904 = true;

1

Khi mỗi trang tính được hoàn thành, nó cũng phải được cam kết

// Set workbook dates to 1904 date system

workbook.properties.date1904 = true;

2

Để hoàn thành tài liệu XLSX, sổ làm việc phải được cam kết. Nếu bất kỳ trang tính nào trong sổ làm việc không được cam kết, chúng sẽ được cam kết tự động như một phần của cam kết sổ làm việc

// Set workbook dates to 1904 date system

workbook.properties.date1904 = true;

3

trình duyệt

Một phần của thư viện này đã được tách biệt và thử nghiệm để sử dụng trong môi trường trình duyệt

Do tính chất phát trực tuyến của trình đọc sổ làm việc và trình ghi sổ làm việc, những thứ này chưa được đưa vào. Chỉ có thể sử dụng sổ làm việc dựa trên tài liệu [xem Tạo Sổ làm việc để biết chi tiết]

Ví dụ mã sử dụng ExcelJS trong trình duyệt, hãy xem thư mục spec/browser trong repo github

Gói sẵn

Các tệp sau được đóng gói sẵn và được bao gồm trong thư mục dist

  • exceljs. js
  • exceljs. tối thiểu. js
Value Types

Các loại giá trị sau được hỗ trợ

Giá trị Null

liệt kê. Excel. Loại giá trị. Vô giá trị

Giá trị null cho biết không có giá trị và thường sẽ không được lưu trữ khi ghi vào tệp [ngoại trừ các ô được hợp nhất]. Nó có thể được sử dụng để xóa giá trị khỏi một ô

E. g

// Set workbook dates to 1904 date system

workbook.properties.date1904 = true;

4

Hợp nhất tế bào

liệt kê. Excel. Loại giá trị. hợp nhất

Một ô hợp nhất là một ô có giá trị được liên kết với một ô 'chính' khác. Việc gán cho một ô hợp nhất sẽ khiến ô chính bị sửa đổi

Giá trị số

liệt kê. Excel. Loại giá trị. Con số

A numeric value

E. g

// Set workbook dates to 1904 date system

workbook.properties.date1904 = true;

5

Chuỗi giá trị

liệt kê. Excel. Loại giá trị. Chuỗi

Một chuỗi văn bản đơn giản

E. g

// Set workbook dates to 1904 date system

workbook.properties.date1904 = true;

6

Giá trị ngày

liệt kê. Excel. Loại giá trị. Ngày tháng

Một giá trị ngày, được biểu thị bằng loại Ngày của JavaScript

E. g

// Set workbook dates to 1904 date system

workbook.properties.date1904 = true;

7

Giá trị siêu liên kết

liệt kê. Excel. Loại giá trị. siêu liên kết

Một URL có cả văn bản và giá trị liên kết

E. g

// Set workbook dates to 1904 date system

workbook.properties.date1904 = true;

8

Giá trị công thức

liệt kê. Excel. Loại giá trị. Công thức

Một công thức Excel để tính toán các giá trị một cách nhanh chóng. Lưu ý rằng mặc dù loại ô sẽ là Công thức, ô có thể có giá trị Kiểu hiệu quả sẽ được lấy từ giá trị kết quả

Lưu ý rằng ExcelJS không thể xử lý công thức để tạo ra kết quả, nó phải được cung cấp

E. g

// Set workbook dates to 1904 date system

workbook.properties.date1904 = true;

9

Các ô cũng hỗ trợ getters tiện lợi để truy cập công thức và kết quả

workbook.views = [

  {

    x: 0, y: 0, width: 10000, height: 20000,

    firstSheet: 0, activeTab: 1, visibility: 'visible'

  }

]

0

Công thức chia sẻ

Các công thức được chia sẻ nâng cao khả năng nén của tài liệu xlsx bằng cách tăng sự lặp lại của văn bản trong trang tính xml

Một công thức được chia sẻ có thể được gán cho một ô bằng cách sử dụng biểu mẫu giá trị mới

workbook.views = [

  {

    x: 0, y: 0, width: 10000, height: 20000,

    firstSheet: 0, activeTab: 1, visibility: 'visible'

  }

]

1

Điều này chỉ định rằng ô B3 là một công thức sẽ được bắt nguồn từ công thức trong A3 và kết quả của nó là 10

Trình lấy công thức tiện lợi sẽ dịch công thức trong A3 thành công thức cần có trong B3

workbook.views = [

  {

    x: 0, y: 0, width: 10000, height: 20000,

    firstSheet: 0, activeTab: 1, visibility: 'visible'

  }

]

2

Formula Type

Để phân biệt giữa các ô công thức thực và đã dịch, hãy sử dụng công cụ lấy công thức

workbook.views = [

  {

    x: 0, y: 0, width: 10000, height: 20000,

    firstSheet: 0, activeTab: 1, visibility: 'visible'

  }

]

3

Loại công thức có các giá trị sau

TênGiá trịEnums. Loại công thức. Không có0Enums. Loại công thức. Master1Enums. Loại công thức. Chia sẻ2

Giá trị văn bản đa dạng thức

liệt kê. Excel. Loại giá trị. RichText

Văn bản phong phú, có kiểu dáng

E. g

workbook.views = [

  {

    x: 0, y: 0, width: 10000, height: 20000,

    firstSheet: 0, activeTab: 1, visibility: 'visible'

  }

]

4

Giá trị Boolean

liệt kê. Excel. Loại giá trị. Boolean

E. g

workbook.views = [

  {

    x: 0, y: 0, width: 10000, height: 20000,

    firstSheet: 0, activeTab: 1, visibility: 'visible'

  }

]

5

Giá trị lỗi

liệt kê. Excel. ValueType. Lỗi

E. g

workbook.views = [

  {

    x: 0, y: 0, width: 10000, height: 20000,

    firstSheet: 0, activeTab: 1, visibility: 'visible'

  }

]

6

Các giá trị văn bản Lỗi hợp lệ hiện tại là

TênGiá trịExcel. ErrorValue. NotApplicable#N/AExcel. ErrorValue. Tham chiếu #REF. Excel. ErrorValue. Tên#TÊN?Excel. ErrorValue. DivZero#DIV/0. Excel. ErrorValue. Null null. Excel. ErrorValue. Giá trị#VALUE. Excel. ErrorValue. Num num. Thay đổi giao diện

Mọi nỗ lực được thực hiện để tạo ra một giao diện nhất quán tốt không vượt qua các phiên bản nhưng rất tiếc, đôi khi một số thứ phải thay đổi để tốt hơn

0. 1. 0

bảng tính. từng hàng

Các đối số trong hàm gọi lại Worksheet. eachRow đã được hoán đổi và thay đổi; . each] và ưu tiên đối tượng hàng trên số hàng

bảng tính. getRow

Hàm này đã thay đổi từ trả về một mảng thưa thớt các giá trị ô thành trả về một đối tượng Row. Điều này cho phép truy cập các thuộc tính hàng và sẽ tạo điều kiện thuận lợi cho việc quản lý các kiểu hàng, v.v.

Mảng giá trị ô thưa thớt vẫn có sẵn qua Trang tính. getRow[số hàng]. các giá trị;

0. 1. 1

tế bào. kiểu mẫu

tế bào. kiểu được đổi tên thành ô. Phong cách

0. 2. 44

Các lời hứa được trả về từ các chức năng được chuyển từ Bluebird sang nút gốc Lời hứa có thể phá vỡ mã gọi nếu chúng dựa vào các tính năng bổ sung của Bluebird

Để giảm thiểu điều này, hai thay đổi sau đã được thêm vào 0. 3. 0

  • Một lib lời hứa tương thích với trình duyệt vẫn có đầy đủ tính năng hơn được sử dụng theo mặc định. Thư viện này hỗ trợ nhiều tính năng của Bluebird nhưng với dung lượng thấp hơn nhiều
  • Một tùy chọn để thực hiện một Promise khác. Xem phần Cấu hình để biết thêm chi tiết
cấu hình

ExcelJS hiện hỗ trợ phép nội xạ phụ thuộc cho thư viện lời hứa. Bạn có thể khôi phục các lời hứa của Bluebird bằng cách đưa đoạn mã sau vào mô-đun của mình

workbook.views = [

  {

    x: 0, y: 0, width: 10000, height: 20000,

    firstSheet: 0, activeTab: 1, visibility: 'visible'

  }

]

7

Xin lưu ý. Tôi đã thử nghiệm cụ thể ExcelJS với bluebird [cho đến gần đây đây là thư viện mà nó đã sử dụng]. Từ các bài kiểm tra tôi đã thực hiện, nó sẽ không hoạt động với Q

Hãy cẩn thận

thư mục quận

Trước khi xuất bản mô-đun này, mã nguồn được dịch mã và xử lý theo cách khác trước khi đặt vào thư mục dist/. README này xác định hai tệp - gói trình duyệt và phiên bản rút gọn. Không có nội dung nào khác của dist/thư mục được đảm bảo theo bất kỳ cách nào ngoài tệp được chỉ định là "chính" trong gói. json

Vấn đề đã biết

Testing with Puppeteer

Bộ thử nghiệm có trong thư viện này bao gồm một tập lệnh nhỏ được thực thi trong trình duyệt không đầu để xác thực các gói đi kèm. Tại thời điểm viết bài này, có vẻ như thử nghiệm này không hoạt động tốt trong hệ thống con Windows Linux

Vì lý do này, kiểm tra trình duyệt có thể bị vô hiệu hóa bởi sự tồn tại của tệp có tên. vô hiệu hóa kiểm tra trình duyệt

workbook.views = [

  {

    x: 0, y: 0, width: 10000, height: 20000,

    firstSheet: 0, activeTab: 1, visibility: 'visible'

  }

]

8

Nối vs Hợp nhất

Nếu bất kỳ thao tác nối nào ảnh hưởng đến ô đã hợp nhất, nhóm hợp nhất sẽ không được di chuyển chính xác

Lịch sử phát hànhVersionChanges0. 0. 9
  • Number Formats
0. 1. 0
  • Sửa lỗi
    • "" text characters properly rendered in xlsx
  • Kiểm soát cột tốt hơn
  • Kiểm soát hàng tốt hơn
0. 1. 1
  • Sửa lỗi
    • Nhiều dữ liệu văn bản hơn được ghi đúng vào xml [bao gồm văn bản, siêu liên kết, kết quả công thức và mã định dạng]
    • Nhận dạng mã định dạng ngày tốt hơn
  • Kiểu phông chữ di động
0. 1. 2
  • Đã sửa lỗi điều kiện cuộc đua tiềm ẩn khi ghi zip
0. 1. 3
  • Kiểu căn chỉnh ô
  • Chiều cao hàng
  • Some Internal Restructuring
0. 1. 5
  • Sửa lỗi
    • Hiện xử lý 10 trang tính trở lên trong một sổ làm việc
    • theme1. tệp xml được thêm và tham chiếu đúng cách
  • đường viền ô
0. 1. 6
  • Sửa lỗi
    • Chủ đề tương thích hơn 1. xml included in XLSX file
  • Cell Fills
0. 1. 8
  • Sửa lỗi
    • Chủ đề tương thích hơn 1. xml included in XLSX file
    • Đã sửa lỗi trường hợp tên tệp
  • Cell Fills
0. 1. 9
  • Sửa lỗi
    • Đã thêm tệp docProps để đáp ứng người dùng Mac Excel
    • Đã sửa lỗi trường hợp tên tệp
    • Đã khắc phục sự cố id trang tính
  • Thuộc tính sổ làm việc cốt lõi
0. 1. 10
  • Sửa lỗi
    • Xử lý lỗi File Not Found
  • Tệp CSV
0. 1. 11
  • Sửa lỗi
    • Đã sửa lỗi căn giữa theo chiều dọc
  • Kiểu hàng và cột
  • bảng tính. eachRow hỗ trợ các tùy chọn
  • Hàng ngang. eachCell hỗ trợ các tùy chọn
  • Cột chức năng mới. mỗi ô
0. 2. 0
  • Trình ghi XLSX trực tuyến
    • Cuối cùng, ExcelJS có thể hỗ trợ ghi các tệp XLSX lớn theo cách hiệu quả về bộ nhớ có thể mở rộng. Hiệu suất đã được tối ưu hóa và thậm chí các bảng tính nhỏ hơn có thể ghi nhanh hơn so với trình soạn thảo tài liệu. Các tùy chọn đã được thêm vào để kiểm soát việc sử dụng các chuỗi và kiểu được chia sẻ vì cả hai đều có thể có ảnh hưởng đáng kể đến hiệu suất
  • bảng tính. hàng cuối cùng
    • Truy cập hàng có thể chỉnh sửa cuối cùng trong trang tính
  • Hàng ngang. làm[]
    • Đối với người viết phát trực tuyến, phương thức này cam kết hàng [và bất kỳ hàng nào trước đó] cho luồng. Các hàng đã cam kết sẽ không thể chỉnh sửa được nữa [và thường bị xóa khỏi đối tượng trang tính]. Đối với sổ làm việc kiểu Tài liệu, phương pháp này không có tác dụng
0. 2. 2
  • Một tỷ tế bào
    • Mở khóa thành tựu. Một thử nghiệm đơn giản sử dụng ExcelJS đã tạo một bảng tính với 1.000.000.000 ô. Được tạo bằng dữ liệu ngẫu nhiên với 100.000.000 hàng 10 ô mỗi hàng. Tôi chưa thể xác thực tệp vì Excel sẽ không mở tệp và tôi vẫn chưa triển khai trình đọc phát trực tuyến nhưng tôi hoàn toàn tin tưởng rằng nó tốt vì 1.000.000 hàng đã tải được.
0. 2. 3
  • Sửa lỗi
    • Hợp nhất các kiểu ô
      • Các ô đã hợp nhất hiện vẫn tồn tại [và phân tích cú pháp] kiểu của chúng
  • Trình ghi XLSX trực tuyến
    • Cuối cùng, ExcelJS có thể hỗ trợ ghi các tệp XLSX lớn theo cách hiệu quả về bộ nhớ có thể mở rộng. Hiệu suất đã được tối ưu hóa và thậm chí các bảng tính nhỏ hơn có thể ghi nhanh hơn so với trình soạn thảo tài liệu. Các tùy chọn đã được thêm vào để kiểm soát việc sử dụng các chuỗi và kiểu được chia sẻ vì cả hai đều có thể có ảnh hưởng đáng kể đến hiệu suất
  • bảng tính. hàng cuối cùng
    • Truy cập hàng có thể chỉnh sửa cuối cùng trong trang tính
  • Hàng ngang. làm[]
    • Đối với người viết phát trực tuyến, phương thức này cam kết hàng [và bất kỳ hàng nào trước đó] cho luồng. Các hàng đã cam kết sẽ không thể chỉnh sửa được nữa [và thường bị xóa khỏi đối tượng trang tính]. Đối với sổ làm việc kiểu Tài liệu, phương pháp này không có tác dụng
0. 2. 4
  • Sửa lỗi
    • Worksheets with Ampersand Names
      • Tên trang tính hiện được mã hóa xml và sẽ hoạt động với tất cả các ký tự tương thích xml
  • Hàng ngang. ẩn & cột. ẩn giấu
    • Hàng và Cột hiện hỗ trợ thuộc tính ẩn
  • bảng tính. addRows
    • Hàm mới để thêm một mảng các hàng [dạng mảng hoặc dạng đối tượng] vào cuối trang tính
0. 2. 6
  • Sửa lỗi
    • Chữ ký không hợp lệ. 0x80014. Cảm ơn hasanlussa đã PR
  • Defined Names
    • Các ô hiện có thể được gán tên mà sau đó có thể được sử dụng trong các công thức
  • Bluebird đã chuyển đổi. defer[] sang Bluebird mới[chức năng[giải quyết, từ chối]{}]. Cảm ơn người dùng Nishchit về Yêu cầu kéo
0. 2. 7
  • Data Validations
    • Giờ đây, các ô có thể xác định các xác thực kiểm soát các giá trị hợp lệ mà ô có thể có
0. 2. 8
  • Giá trị văn bản đa dạng thức
    • Các ô hiện hỗ trợ định dạng trong ô - Cảm ơn Peter ADAM
  • Đã sửa lỗi đánh máy trong README - Cảm ơn MRdNk
  • Sửa lỗi phát ra trong trình đọc trang tính - Cảm ơn Alan Gunning
  • Clearer Docs - Cảm ơn miensol
0. 2. 9
  • Đã sửa lỗi "đọc thuộc tính 'richText' của lỗi không xác định. cảm ơn james075
0. 2. 10
  • Hoàn thành tái cấu trúc. Tất cả các bài kiểm tra đơn vị và tích hợp đều vượt qua
0. 2. 11
  • Cấp phác thảo. Cảm ơn cricri vì sự đóng góp
  • Worksheet Properties
  • Tiếp tục tái cấu trúc trình soạn thảo trang tính
0. 2. 12
  • Chế độ xem trang tính. Cảm ơn cricri một lần nữa vì sự đóng góp
0. 2. 13
  • Bản sửa lỗi cho exceljs có thể dễ bị tấn công từ chối dịch vụ biểu thức chính quy. Kudos to yonjah và Josh Emerson cho giải pháp
  • Khắc phục sự cố Nhiều trang tính mở ở chế độ 'Nhóm' trong Excel. Lỗi của tôi - mã xem trang tính quá nhiệt tình
  • Cũng sửa lỗi cho trang trống tạo xlsx không hợp lệ
0. 2. 14
  • Bản sửa lỗi cho exceljs có thể dễ bị tấn công từ chối dịch vụ biểu thức chính quy. Kudos to yonjah và Josh Emerson cho giải pháp
  • Đã sửa lỗi Nhiều trang tính mở lại ở chế độ 'Nhóm' trong Excel. Đã thêm chế độ xem sổ làm việc
  • Cũng sửa lỗi cho trang trống tạo xlsx không hợp lệ
0. 2. 15
  • Đã thêm thuộc tính thiết lập trang. Cảm ơn Jackkum vì đã PR
0. 2. 16
  • Thuộc tính thiết lập trang mới. Khu vực in
0. 2. 17
  • Hợp nhất Sửa lỗi về ký tự phiên âm. Điều này khắc phục sự cố liên quan đến việc đọc sổ làm việc có văn bản phiên âm trong. Lưu ý văn bản ngữ âm chưa được hỗ trợ đúng cách - chỉ cần bỏ qua đúng cách. Cảm ơn zephyrrider và gen6033 vì sự đóng góp
0. 2. 18
  • Đã hợp nhất Sửa hồi quy #150. API luồng không thể ghi tệp XLSX. Lời xin lỗi cho hồi quy. Cảm ơn danieleds đã sửa lỗi
  • Hợp nhất Sửa lỗi về ký tự phiên âm. Điều này khắc phục sự cố liên quan đến việc đọc sổ làm việc có văn bản phiên âm trong. Lưu ý văn bản ngữ âm chưa được hỗ trợ đúng cách - chỉ cần bỏ qua đúng cách. Cảm ơn zephyrrider và gen6033 vì sự đóng góp
0. 2. 19
  • Merged Update xlsx. #119. Điều này sẽ làm cho việc phân tích cú pháp linh hoạt hơn đối với các tài liệu văn phòng mở. Cảm ơn nvitaterna vì sự đóng góp
0. 2. 20
  • Các thay đổi được hợp nhất từ ​​exceljs/exceljs#127 được áp dụng cho phiên bản mới nhất #179. Sửa lỗi phân tích cú pháp các giá trị tên đã xác định. Cảm ơn agdevbridge và priitliivak vì sự đóng góp
0. 2. 21
  • Hợp nhất các tab màu cho worksheet-writer #135. Đã sửa đổi hành vi để in cảnh báo không dùng nữa khi tabColor đã chuyển sang tùy chọn. tính chất. Cảm ơn ethanlook vì sự đóng góp
0. 2. 22
  • Đã hợp nhất Ném lỗi rõ ràng khi không thành công Giá trị. getType[] #136. Cảm ơn wulfsolter vì sự đóng góp
  • Đề cập đáng trân trọng đến những người đóng góp có PR đã được sửa trước khi tôi nhìn thấy chúng
    • haoliangyu
    • người đánh cá
0. 2. 23
  • Đã hợp nhất Quay trở lại JSON. stringify[] nếu ô không xác định. Type #137 with some modification. Nếu một giá trị ô được gán cho một đối tượng javascript không thể nhận dạng, thì giá trị được lưu trữ trong các tệp xlsx và csv sẽ được chuỗi hóa JSON. Note that if the file is read again, no attempt will be made to parse the stringified JSON text. Cảm ơn wulfsolter vì sự đóng góp
0. 2. 24
  • Bản sửa lỗi bảo vệ ô đã hợp nhất #166. Điều này không có nghĩa là hỗ trợ đầy đủ cho các ô được bảo vệ chỉ đơn thuần là trình phân tích cú pháp không bị nhầm lẫn bởi xml bổ sung. Cảm ơn jayflo vì sự đóng góp
0. 2. 25
  • Đã thêm chức năng xóa ô, hàng và cột khỏi trang tính. Modelled after the Array splice method, the functions allow cells, rows and columns to be deleted [and optionally inserted]. Xem Cột và Hàng để biết chi tiết.
    Lưu ý. Không tương thích với tính năng hợp nhất ô
0. 2. 26
  • Cập nhật hợp nhất border-xform. js #184Các cạnh đường viền không có kiểu sẽ được phân tích cú pháp và hiển thị dưới dạng không có đường viền. Cảm ơn skumarnk2 vì sự đóng góp
0. 2. 27
  • Đã hợp nhất Chuyển các dạng xem tới trình soạn thảo trang tính #187. Bây giờ cũng chuyển lượt xem cho người viết trang tính. Cảm ơn Temetz vì sự đóng góp
  • Hợp nhất Không thoát ký tự xml khi sử dụng chuỗi chia sẻ #189. Sửa lỗi trong chuỗi chia sẻ. Thanks to tkirda for the contribution
0. 2. 28
  • Hợp nhất Sửa lỗi nhỏ [Cập nhật bản đồ siêu liên kết. js] #190Cảm ơn lszlkss vì sự đóng góp
  • Đã hợp nhất sửa lỗi đánh máy trên chế độ xem trang tính tùy chọn showGridLines #196 "showGridlines" phải là "showGridLines". Cảm ơn gadiaz1 vì sự đóng góp
0. 2. 29
  • Đã hợp nhất sự kiện kết thúc Fire thay vì sự kiện kết thúc trên luồng ghi #199 và Lắng nghe sự kiện kết thúc trên luồng zip thay vì luồng trung gian #200. Fixes issues with stream completion events. Cảm ơn junajan vì sự đóng góp
0. 2. 30
  • Hợp nhất Khắc phục sự cố #178 #201. Adds the following properties to workbook
    • Tiêu đề
    • vấn đề
    • từ khóa
    • thể loại
    • sự miêu tả
    • Công ty
    • người quản lý
    Cảm ơn stevenko vì sự đóng góp
0. 2. 31
  • Hợp nhất Khắc phục sự cố #163. thuộc tính "spans" của thành phần hàng là tùy chọn #203. Bây giờ phân tích cú pháp xlsx sẽ xử lý các tài liệu không có hàng kéo dài. Cảm ơn arturas-vitkauskas vì sự đóng góp
0. 2. 32
  • Hợp nhất Khắc phục sự cố 206 #208. Khắc phục sự cố đọc tệp xlsx đã được in. Đồng thời thêm thuộc tính "lastPrinted" vào Sổ làm việc. Cảm ơn arturas-vitkauskas vì sự đóng góp
0. 2. 33
  • Đã hợp nhất Cho phép tạo kiểu ô không có giá trị. #210. Bao gồm các ô loại Null có kiểu trong phân tích kết xuất. Cảm ơn oferns vì sự đóng góp
0. 2. 34
  • Đã hợp nhất Sửa lỗi "Nút xml không mong đợi trong parseOpen" trong tài liệu LibreOffice cho các thuộc tính dc. ngôn ngữ và cp. sửa đổi #212. Cảm ơn jessica-jordan vì sự đóng góp
0. 2. 35
  • Đã sửa lỗi Lấy số cột/hàng #74. Trang tính hiện có các thuộc tính rowCount và columnCount [và các biến thể thực tế], Row có cellCount
0. 2. 36
  • Merged Stream reader fixes #217. Cảm ơn kturney vì sự đóng góp
0. 2. 37
  • Đã hợp nhất Sửa thứ tự đầu ra của Thuộc tính Trang tính #225. Cảm ơn kekeym vì sự đóng góp
  • Đã hợp nhất xóa trang tính trống[0] khỏi _worksheets #231. Cám ơn pookong đã đóng góp
  • Đã hợp nhất không bỏ qua chuỗi trống trong chuỗi được chia sẻ để các chỉ mục khớp với nhau #232. Một lần nữa cảm ơn pookong vì sự đóng góp
  • Đã hợp nhất sử dụng các chuỗi được chia sẻ để ghi trực tuyến #233. Một lần nữa cảm ơn pookong vì sự đóng góp
0. 2. 38
  • Hợp nhất Thêm nhận xét cho vấn đề #216 #236. Cảm ơn jsalwen vì sự đóng góp
  • Merged Start on support for 1904 based dates #237. Đã sửa lỗi xử lý ngày trong tài liệu với cờ 1904 được đặt. Cảm ơn holm vì sự đóng góp
0. 2. 39
  • Merged Stops Cảnh báo Bluebird về lời hứa không được đáp lại #245. Cảm ơn robinbullocks4rb vì sự đóng góp
  • Đã hợp nhất Đã thêm phụ thuộc bị thiếu. col-cache. #247. Cảm ơn Manish2005 vì sự đóng góp
0. 2. 42
  • Browser Compatable
    • Vâng chủ yếu. Tôi đã thêm một thư mục con của trình duyệt có chứa gói được trình duyệt hóa và một chỉ mục. js có thể được sử dụng để tạo một cái khác. Xem phần Trình duyệt để biết chi tiết
  • Đã sửa lỗi chủ đề bị hỏng. xml. Xin lỗi vì đã để điều đó thông qua
  • Hợp nhất [SỬA LỖI] công thức xác thực dữ liệu không xác định #253. Cảm ơn jayflo vì sự đóng góp
0. 2. 43
  • Hợp nhất đã thêm một giải pháp [có thể một phần] cho vấn đề 99. tôi không thể tạo bài kiểm tra thích hợp #255. Bản sửa lỗi này Quá ít dữ liệu hoặc trang tính trống tạo tệp excel không đúng định dạng #99. Cảm ơn mminuti vì sự đóng góp
0. 2. 44
  • Giảm phụ thuộc
    • Tạm biệt lodash, tạm biệt bluebird. Gói rút gọn hiện chỉ còn hơn một nửa so với phiên bản đầu tiên
0. 2. 45
  • Trang tính đã hợp nhất với siêu liên kết và xác thực dữ liệu bị hỏng #256. Cảm ơn simon-stoic vì sự đóng góp
0. 2. 46
  • Hợp nhất Loại trừ các điều khiển ký tự khỏi đầu ra XML. Bản sửa lỗi #234 #262. Cảm ơn holm vì sự đóng góp
  • Merged Add support for identifier #259. Điều này sửa lỗi XLSX bị hỏng do ký tự ascii "tab dọc" trong ô #234. Cảm ơn NOtherDev vì sự đóng góp
0. 3. 0
  • Đã giải quyết Thay đổi vi phạm khi xóa bluebird #266. Xin lỗi vì bất kỳ sự bất tiện nào
  • Đã thêm nội dung phụ thuộc vào thư viện Promise. See Config section for more details
0. 3. 1
  • Merged Update dependencies #279. Thanks to holm for the contribution
  • Merged Minor fixes for stream handling #267. Thanks to holm for the contribution
  • Added automated tests in phantomjs for the browserified code
0. 4. 0
  • Fixed issue Boolean cell with value ="true" is returned as 1 #278. The fix involved adding two new Call Value types
    • Giá trị Boolean
    • Giá trị lỗi
    Note. Minor version has been bumped up to 4 as this release introduces a couple of interface changes
    • Boolean cells previously will have returned 1 or 0 will now return true or false
    • Error cells that previously returned a string value will now return an error structure
  • Fixed issue Code correctness - setters don't return a value #280
  • Addressed issue v0. 3. 1 breaks meteor build #288
0. 4. 1
  • Merged Add support for cp. contentStatus #285. Thanks to holm for the contribution
  • Merged Fix Valid characters in XML [allow \n and \r when saving] #286. Cảm ơn Rycochet vì sự đóng góp
  • Đã sửa lỗi siêu liên kết với các đối số truy vấn làm hỏng sổ làm việc #275. The hyperlink target is not escaped before serialising in the xml
0. 4. 2
  • Addressed the following issues

    • White text and borders being changed to black #290
    • Losing formatting/pivot table from loaded file #261
    • Solid fill become black #272
    These issues are potentially caused by a bug that caused colours with zero themes, tints or indexes to be rendered and parsed incorrectly

    Regarding themes. the theme files stored inside the xlsx container hold important information regarding colours, styles etc and if the theme information from a loaded xlsx file is lost, the results can be unpredictable and undesirable. To address this, when an ExcelJS Workbook parses an XLSX file, it will preserve any theme files it finds and include them when writing to a new XLSX. Nếu hành vi này không được mong muốn, lớp Workbook sẽ hiển thị hàm clearThemes[] sẽ loại bỏ nội dung chủ đề. Lưu ý rằng hành vi này chỉ được triển khai trong lớp Sổ làm việc dựa trên tài liệu, không phải Trình đọc và Trình ghi được phát trực tuyến

Chủ Đề