获取行 getRow

  1. const row = worksheet.getRow(5);// 获取第6行。如果不存在,则将返回一个新的空对象
  2. const rows = worksheet.getRows(5, 2); //获取多行,从第6行开始,获取2行
  3. const row = worksheet.lastRow; //获取最后一个可编辑的行

设置行属性

  1. row.height = 42.5;// 设置特定的行高
  2. row.hidden = true;// 隐藏行
  3. // 为行设置大纲级别
  4. worksheet.getRow(4).outlineLevel = 0;
  5. worksheet.getRow(5).outlineLevel = 1;
  6. // 行支持一个只读字段,以指示基于 `OutlineLevel` 的折叠状态
  7. expect(worksheet.getRow(4).collapsed).to.equal(false);
  8. expect(worksheet.getRow(5).collapsed).to.equal(true);

设置值

  1. row.getCell(1).value = 5; // A5 的值设置为5
  2. row.getCell('name').value = 'Zeb'; // B5 的值设置为 “Zeb” - 假设第2列的key是'name'
  3. row.getCell('C').value = new Date(); // C5 的值设置为当前时间
  4. // 获取行并作为稀疏数组返回
  5. // 注意:接口更改:worksheet.getRow(4) ==> worksheet.getRow(4).values
  6. row = worksheet.getRow(4).values;
  7. expect(row[5]).toEqual('Kyle');
  8. // 通过连续数组分配行值(其中数组元素 0 具有值)
  9. row.values = [1,2,3];
  10. expect(row.getCell(1).value).toEqual(1);
  11. expect(row.getCell(2).value).toEqual(2);
  12. expect(row.getCell(3).value).toEqual(3);
  13. // 通过稀疏数组分配行值(其中数组元素 0 为 `undefined`)
  14. const values = []
  15. values[5] = 7;
  16. values[10] = 'Hello, World!';
  17. row.values = values;
  18. expect(row.getCell(1).value).toBeNull();
  19. expect(row.getCell(5).value).toEqual(7);
  20. expect(row.getCell(10).value).toEqual('Hello, World!');
  21. // 使用列键key按对象分配行值
  22. row.values = {
  23. id: 13,
  24. name: 'Thing 1',
  25. dob: new Date()
  26. };

遍历行中的单元格

  1. // 遍历工作表中具有值的所有行
  2. worksheet.eachRow(function(row, rowNumber) {
  3. console.log('Row ' + rowNumber + ' = ' + JSON.stringify(row.values));
  4. });
  5. // 遍历工作表中的所有行(包括空行)
  6. worksheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
  7. console.log('Row ' + rowNumber + ' = ' + JSON.stringify(row.values));
  8. });
  9. // 连续遍历所有非空单元格
  10. row.eachCell(function(cell, colNumber) {
  11. console.log('Cell ' + colNumber + ' = ' + cell.value);
  12. });
  13. // 遍历一行中的所有单元格(包括空单元格)
  14. row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
  15. console.log('Cell ' + colNumber + ' = ' + cell.value);
  16. });

插入分页符 addPageBreak

  1. row.addPageBreak(); // 在该行下方插入一个分页符

行尺寸 cellCount

  1. const rowSize = row.cellCount; // 行尺寸
  2. const numValues = row.actualCellCount; // 行实际尺寸

追加行 addRow

  1. worksheet.addRow([3, 'Sam', new Date()]); ////从最后一行添加行,一个逗号对应一个单元格
  2. //从最后一行添加行,根据列key设置值,
  3. worksheet.addRow({id: 1, name: 'John Doe', dob: new Date(1970,1,1)});
  4. worksheet.addRow({id: 2, name: 'Jane Doe', dob: new Date(1965,1,7)});
  5. // 零散插入值,也是从最后一行插入
  6. const rowValues = [];
  7. rowValues[1] = 4;
  8. rowValues[5] = 'Kyle';
  9. rowValues[9] = new Date();
  10. worksheet.addRow(rowValues);
  11. const newRow = worksheet.addRow(rowValues, 'i'); //从最后一行插入行,第二个参数是是否继承上一行的样式
  12. //默认是'n'不继承,'i'是继承上一行,'i+'是包括空行,'o'是保留原有的样式
  13. // 插入多行
  14. const rows = [
  15. [5,'Bob',new Date()],
  16. {id:6, name: 'Barbara', dob: new Date()}
  17. ];
  18. worksheet.addRows(rows);

插入行 insertRow

其他参考追加行,形式一样,只是第一个参数是位置

  1. worksheet.insertRow(1,[3, 'Sam', new Date()],'i') //从第1行上面插入行,第三个参数是样式,默认是n,参考追加行addRow
  2. worksheet.spliceRows(3, 0, Array1, Array2);//从第3行上面插入2行,行的值为Array1和Array2

删除行 spliceRows

  1. worksheet.spliceRows(4, 3); //从第4行开始,删除3行,包括第4行
  2. const newRow3Values = [1, 2, 3, 4, 5];
  3. const newRow4Values = ['one', 'two', 'three', 'four', 'five'];
  4. worksheet.spliceRows(3, 1, newRow3Values, newRow4Values);
  5. // Cut one or more cells (cells to the right are shifted left)
  6. // Note: this operation will not affect other rows
  7. row.splice(3, 2);
  8. // remove one cell and insert two more (cells to the right of the cut cell will be shifted right)
  9. row.splice(4, 1, 'new value 1', 'new value 2');