1
シートから使用済み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を見ることができます非常に 1つずつ、ゆっくりと。
office.js APIは、非常に短い時間で同じことを達成するための他の方法もありますか?
あなたの答えはありがたいですが、これは私がやりたいことに関連しているとは思われません。特定の範囲の値を設定することができますが、私は与えられた範囲に行を挿入したいと思います。あなたのコードに挿入オプションが表示されません。もっと詳しく教えていただけますか? –
@PavanDivekar範囲を挿入するための答えを更新した後、値を設定します(これはExcelを持たないため、MSのドキュメントに限定されているため動作しないのか分かりません):https://dev.office.com/reference/addinins/excel/range#insertshift-string – HMR
あなたは正しいですが、すでに持っている既存の範囲に行を挿入しようとしていますが、これはあなたが提供するコードを使って行えません。 –