시트에서 사용 된 range
내 또는 아래에 일부 행을 삽입하려고합니다.Excel API cell.insert를 실행하는 데 매우 오랜 시간이 걸릴 때
여기 내 코드는 하드 코딩 된 배열을 보여 주지만 실제로 데이터는 서버 응용 프로그램에서 가져온 것입니다. 서버 응답을 검사 한 후 삽입 순서를 결정합니다.
Excel.run(function (ctx) {
var rowIdsArray = [1, 2, 3, 4, 5, 6, 7, 8, 9]; //data that might have come from server
var sht = ctx.workbook.worksheets.getItem("Sheet1");
for (var i = 50; i > 3; i--) {
//I might want these rows to be inserted before rows
//3 to 50. So 9 rows inserted 48 times
for (var counter1 = 0; counter1 < rowIdsArray.length; counter1++) {
var cell = sht.getUsedRange().getRow(parseInt(i)).getOffsetRange(1, 0);
cell.insert();
}
}
return ctx.sync().then(function() {
console.log("rows inserted");
});
}).catch(function (e) {
console.log("Error Message is -> " + e.message);
});
내가 삽입 할 id
과 행의 배열로 rowIdsArray
이 : 내 코드는 다소 아래처럼 작동합니다. 루프 반복은 어느 인덱스에서 (이 배열은 난수가 내 프로젝트에 있음) 시트에이 행을 추가하려고하는지 설명합니다.
그래서 기본적으로 시트에 행 번호를 삽입합니다 (400-450 행). 그러나 너무 많은 시간이 걸립니다. 나는 Excel을 행을 삽입 매우 천천히, 하나씩 볼 수 있습니다.
office.js API는 매우 짧은 시간 내에 동일한 작업을 수행 할 수있는 다른 방법을 제공합니까?
답장을 보내 주셔서 감사합니다.하지만 제가하고 싶은 일과 관련이 없습니다. U 주어진 범위에 대한 값을 설정할 수있는 솔루션을 제공하지만 주어진 범위에 행을 삽입하려고합니다. 귀하의 코드에 삽입 옵션이 표시되지 않습니다. 더 자세히 설명해 주실 수 있습니까? –
@PavanDivekar 범위를 삽입하기위한 대답을 업데이트 한 다음 값을 설정합니다 (엑셀이없고 MS 설명서로 제한되어 있기 때문에 작동하는지 확실하지 않음) : https://dev.office.com/reference/add-ins/excel/range # insertshift-string – HMR
당신은 맞습니다. 그러나 이미 가지고있는 기존 범위에 행을 삽입하려고합니다. 이것은 내가 제공 한 코드를 사용하여 수행 할 수 없습니다. –