Hướng dẫn exceljs get multiple cells - exceljs lấy nhiều ô

Tôi có một mẫu Excel như thế này:

Dữ liệu tôi nhận được thật đáng buồn chỉ là một mảng 1D như:

data = [a-b, 24, c-d, 25, g-h, 26, e-f, 27, a-c, 24, b-d, 25, e-g, 26, f-h, 27, a-e, 24, e-g, 25, b-f, 26, d-h, 27];

Tôi đang sử dụng gói nodejs và exceljs npm.

Vì vậy, tôi cần phải điền bằng cách nào đó các ô C95: C98, F95: F98, I95: I98 .. Tương tự [nhưng không giống nhau] sẽ áp dụng cho một vài bảng khác trong cùng một bảng tính, vì vậy tôi cần phải làm điều này với vòng lặp.

Tôi gặp rắc rối với việc lấp đầy nhiều dòng và cũng để lấp đầy giá trị khác từ mảng của tôi, bởi vì tôi đã có A-B, C-D, G-H, ... được chèn vào Excel [tôi có thể ghi đè, đó không phải là vấn đề].

Mã cho bây giờ là:

 for [let i = 1; i < 9; i++] {
  console.log[dimensionalCheck[i]];

  let rowNum = 95;
  rowNum++;
  let row = worksheet.getRow[rowNum];
  row.getCell[3].value = dimensionalCheck[i + 1];
  row.commit[];
}

Nhưng những gì tôi nhận được khi trở lại chỉ là thế này:

Tôi khá ngạc nhiên khi đây không phải là một tính năng được yêu cầu phổ biến hơn;Đó có phải là thứ mà chúng ta có thể thấy hỗ trợ trong tương lai gần?

Đây là những gì tôi đã nghĩ ra trong thời gian trung bình, không hoàn toàn chống lỗi [thiếu một vài séc] nhưng đủ gần:

/**
 * Select a range of cells
 * @param  {string}   startCell - Range start cell [top-left]
 * @param  {string}   endCell   - Range end cell [bottom-right]
 * @return {Object[]}           - Selected cells
 */
const selectRange = [sheet, startCell, endCell] => {
  const [endCellColumn, endRow] = endCell.split[":", 2];
  const [startCellColumn, startRow] = startCell.split[":", 2];

  let endColumn = sheet.getColumn[endCellColumn];
  let startColumn = sheet.getColumn[startCellColumn];

  if [!endColumn] throw new Error["End column not found"];
  if [!startColumn] throw new Error["Start column not found"];

  endColumn = endColumn._number;
  startColumn = startColumn._number;

  const cells = [];
  for [let y = startRow; y  {
  const [startCell, endCell] = rangeCell.split[":"]

  const [endCellColumn, endRow] = endCell.match[/[a-z]+|[^a-z]+/gi] as string[]
  const [startCellColumn, startRow] = startCell.match[
    /[a-z]+|[^a-z]+/gi
  ] as string[]

  let endColumn = sheet.getColumn[endCellColumn]
  let startColumn = sheet.getColumn[startCellColumn]

  if [!endColumn] throw new Error["End column not found"]
  if [!startColumn] throw new Error["Start column not found"]

  const endColumnNumber = endColumn.number
  const startColumnNumber = startColumn.number

  const cells = []
  for [let y = parseInt[startRow]; y 

Bài Viết Liên Quan

Chủ Đề