获取行 getRow
const row = worksheet.getRow(5);// 获取第6行。如果不存在,则将返回一个新的空对象
const rows = worksheet.getRows(5, 2); //获取多行,从第6行开始,获取2行
const row = worksheet.lastRow; //获取最后一个可编辑的行
设置行属性
row.height = 42.5;// 设置特定的行高
row.hidden = true;// 隐藏行
// 为行设置大纲级别
worksheet.getRow(4).outlineLevel = 0;
worksheet.getRow(5).outlineLevel = 1;
// 行支持一个只读字段,以指示基于 `OutlineLevel` 的折叠状态
expect(worksheet.getRow(4).collapsed).to.equal(false);
expect(worksheet.getRow(5).collapsed).to.equal(true);
设置值
row.getCell(1).value = 5; // A5 的值设置为5
row.getCell('name').value = 'Zeb'; // B5 的值设置为 “Zeb” - 假设第2列的key是'name'
row.getCell('C').value = new Date(); // C5 的值设置为当前时间
// 获取行并作为稀疏数组返回
// 注意:接口更改:worksheet.getRow(4) ==> worksheet.getRow(4).values
row = worksheet.getRow(4).values;
expect(row[5]).toEqual('Kyle');
// 通过连续数组分配行值(其中数组元素 0 具有值)
row.values = [1,2,3];
expect(row.getCell(1).value).toEqual(1);
expect(row.getCell(2).value).toEqual(2);
expect(row.getCell(3).value).toEqual(3);
// 通过稀疏数组分配行值(其中数组元素 0 为 `undefined`)
const values = []
values[5] = 7;
values[10] = 'Hello, World!';
row.values = values;
expect(row.getCell(1).value).toBeNull();
expect(row.getCell(5).value).toEqual(7);
expect(row.getCell(10).value).toEqual('Hello, World!');
// 使用列键key按对象分配行值
row.values = {
id: 13,
name: 'Thing 1',
dob: new Date()
};
遍历行中的单元格
// 遍历工作表中具有值的所有行
worksheet.eachRow(function(row, rowNumber) {
console.log('Row ' + rowNumber + ' = ' + JSON.stringify(row.values));
});
// 遍历工作表中的所有行(包括空行)
worksheet.eachRow({ includeEmpty: true }, function(row, rowNumber) {
console.log('Row ' + rowNumber + ' = ' + JSON.stringify(row.values));
});
// 连续遍历所有非空单元格
row.eachCell(function(cell, colNumber) {
console.log('Cell ' + colNumber + ' = ' + cell.value);
});
// 遍历一行中的所有单元格(包括空单元格)
row.eachCell({ includeEmpty: true }, function(cell, colNumber) {
console.log('Cell ' + colNumber + ' = ' + cell.value);
});
插入分页符 addPageBreak
row.addPageBreak(); // 在该行下方插入一个分页符
行尺寸 cellCount
const rowSize = row.cellCount; // 行尺寸
const numValues = row.actualCellCount; // 行实际尺寸
追加行 addRow
worksheet.addRow([3, 'Sam', new Date()]); ////从最后一行添加行,一个逗号对应一个单元格
//从最后一行添加行,根据列key设置值,
worksheet.addRow({id: 1, name: 'John Doe', dob: new Date(1970,1,1)});
worksheet.addRow({id: 2, name: 'Jane Doe', dob: new Date(1965,1,7)});
// 零散插入值,也是从最后一行插入
const rowValues = [];
rowValues[1] = 4;
rowValues[5] = 'Kyle';
rowValues[9] = new Date();
worksheet.addRow(rowValues);
const newRow = worksheet.addRow(rowValues, 'i'); //从最后一行插入行,第二个参数是是否继承上一行的样式
//默认是'n'不继承,'i'是继承上一行,'i+'是包括空行,'o'是保留原有的样式
// 插入多行
const rows = [
[5,'Bob',new Date()],
{id:6, name: 'Barbara', dob: new Date()}
];
worksheet.addRows(rows);
插入行 insertRow
其他参考追加行,形式一样,只是第一个参数是位置
worksheet.insertRow(1,[3, 'Sam', new Date()],'i') //从第1行上面插入行,第三个参数是样式,默认是n,参考追加行addRow
worksheet.spliceRows(3, 0, Array1, Array2);//从第3行上面插入2行,行的值为Array1和Array2
删除行 spliceRows
worksheet.spliceRows(4, 3); //从第4行开始,删除3行,包括第4行
const newRow3Values = [1, 2, 3, 4, 5];
const newRow4Values = ['one', 'two', 'three', 'four', 'five'];
worksheet.spliceRows(3, 1, newRow3Values, newRow4Values);
// Cut one or more cells (cells to the right are shifted left)
// Note: this operation will not affect other rows
row.splice(3, 2);
// remove one cell and insert two more (cells to the right of the cut cell will be shifted right)
row.splice(4, 1, 'new value 1', 'new value 2');