microsoft-graph 2.33.0 → 2.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/tasks/insertWorkbookRangeRow.d.ts +18 -0
- package/dist/cjs/tasks/insertWorkbookRangeRow.d.ts.map +1 -0
- package/dist/cjs/tasks/insertWorkbookRangeRow.js +24 -0
- package/dist/cjs/tasks/insertWorkbookRangeRows.d.ts +31 -0
- package/dist/cjs/tasks/insertWorkbookRangeRows.d.ts.map +1 -0
- package/dist/cjs/tasks/insertWorkbookRangeRows.js +80 -0
- package/dist/cjs/tasks/{iterateRows.d.ts → iterateWorkbookRangeRows.d.ts} +3 -3
- package/dist/cjs/tasks/iterateWorkbookRangeRows.d.ts.map +1 -0
- package/dist/cjs/tasks/{iterateRows.js → iterateWorkbookRangeRows.js} +2 -2
- package/dist/{esm/tasks/readFirstRow.d.ts → cjs/tasks/readWorkbookRangeFirstRow.d.ts} +2 -2
- package/dist/cjs/tasks/readWorkbookRangeFirstRow.d.ts.map +1 -0
- package/dist/cjs/tasks/{readFirstRow.js → readWorkbookRangeFirstRow.js} +4 -4
- package/dist/{esm/tasks/readRows.d.ts → cjs/tasks/readWorkbookRangeRows.d.ts} +3 -3
- package/dist/cjs/tasks/readWorkbookRangeRows.d.ts.map +1 -0
- package/dist/cjs/tasks/{readRows.js → readWorkbookRangeRows.js} +5 -5
- package/dist/cjs/tasks/{updateFirstRow.d.ts → updateWorkbookRangeFirstRow.d.ts} +2 -2
- package/dist/cjs/tasks/updateWorkbookRangeFirstRow.d.ts.map +1 -0
- package/dist/cjs/tasks/{updateFirstRow.js → updateWorkbookRangeFirstRow.js} +4 -4
- package/dist/{esm/tasks/updateRows.d.ts → cjs/tasks/updateWorkbookRangeRows.d.ts} +2 -2
- package/dist/cjs/tasks/updateWorkbookRangeRows.d.ts.map +1 -0
- package/dist/cjs/tasks/{updateRows.js → updateWorkbookRangeRows.js} +4 -4
- package/dist/esm/tasks/insertWorkbookRangeRow.d.ts +18 -0
- package/dist/esm/tasks/insertWorkbookRangeRow.d.ts.map +1 -0
- package/dist/esm/tasks/insertWorkbookRangeRow.js +18 -0
- package/dist/esm/tasks/insertWorkbookRangeRows.d.ts +31 -0
- package/dist/esm/tasks/insertWorkbookRangeRows.d.ts.map +1 -0
- package/dist/esm/tasks/insertWorkbookRangeRows.js +74 -0
- package/dist/esm/tasks/{iterateRows.d.ts → iterateWorkbookRangeRows.d.ts} +3 -3
- package/dist/esm/tasks/iterateWorkbookRangeRows.d.ts.map +1 -0
- package/dist/esm/tasks/{iterateRows.js → iterateWorkbookRangeRows.js} +1 -1
- package/dist/{cjs/tasks/readFirstRow.d.ts → esm/tasks/readWorkbookRangeFirstRow.d.ts} +2 -2
- package/dist/esm/tasks/readWorkbookRangeFirstRow.d.ts.map +1 -0
- package/dist/esm/tasks/{readFirstRow.js → readWorkbookRangeFirstRow.js} +3 -3
- package/dist/{cjs/tasks/readRows.d.ts → esm/tasks/readWorkbookRangeRows.d.ts} +3 -3
- package/dist/esm/tasks/readWorkbookRangeRows.d.ts.map +1 -0
- package/dist/esm/tasks/{readRows.js → readWorkbookRangeRows.js} +4 -4
- package/dist/esm/tasks/{updateFirstRow.d.ts → updateWorkbookRangeFirstRow.d.ts} +2 -2
- package/dist/esm/tasks/updateWorkbookRangeFirstRow.d.ts.map +1 -0
- package/dist/esm/tasks/{updateFirstRow.js → updateWorkbookRangeFirstRow.js} +3 -3
- package/dist/{cjs/tasks/updateRows.d.ts → esm/tasks/updateWorkbookRangeRows.d.ts} +2 -2
- package/dist/esm/tasks/updateWorkbookRangeRows.d.ts.map +1 -0
- package/dist/esm/tasks/{updateRows.js → updateWorkbookRangeRows.js} +3 -3
- package/docs/api/README.md +2 -0
- package/docs/api/insertRow.md +34 -0
- package/docs/api/insertRows.md +47 -0
- package/docs/api/iterateRows.md +9 -9
- package/docs/api/readFirstRow.md +3 -3
- package/docs/api/readRows.md +4 -4
- package/docs/api/updateFirstRow.md +3 -3
- package/docs/api/updateRows.md +3 -3
- package/package.json +173 -123
- package/dist/cjs/tasks/iterateRows.d.ts.map +0 -1
- package/dist/cjs/tasks/readFirstRow.d.ts.map +0 -1
- package/dist/cjs/tasks/readRows.d.ts.map +0 -1
- package/dist/cjs/tasks/updateFirstRow.d.ts.map +0 -1
- package/dist/cjs/tasks/updateRows.d.ts.map +0 -1
- package/dist/esm/tasks/iterateRows.d.ts.map +0 -1
- package/dist/esm/tasks/readFirstRow.d.ts.map +0 -1
- package/dist/esm/tasks/readRows.d.ts.map +0 -1
- package/dist/esm/tasks/updateFirstRow.d.ts.map +0 -1
- package/dist/esm/tasks/updateRows.d.ts.map +0 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inserts a single row into a workbook range.
|
|
3
|
+
* @module insertRow
|
|
4
|
+
* @category Tasks
|
|
5
|
+
* @experimental
|
|
6
|
+
*/
|
|
7
|
+
import type { Cell } from "../models/Cell.ts";
|
|
8
|
+
import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
9
|
+
/**
|
|
10
|
+
* Inserts a single row into a workbook range.
|
|
11
|
+
* @param originRef Reference to the workbook range to update. Only the upper-left cell is used as an origin point.
|
|
12
|
+
* @param row Array of cells to insert as a single row.
|
|
13
|
+
* @experimental
|
|
14
|
+
* @example
|
|
15
|
+
* await insertRow(originRef, [{ value: "A1" }, { value: "B1" }, { value: "C1" }]);
|
|
16
|
+
*/
|
|
17
|
+
export default function insertWorkbookRangeRow(originRef: WorkbookRangeRef, row: Partial<Cell>[]): Promise<void>;
|
|
18
|
+
//# sourceMappingURL=insertWorkbookRangeRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insertWorkbookRangeRow.d.ts","sourceRoot":"","sources":["../../../src/tasks/insertWorkbookRangeRow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGnE;;;;;;;GAOG;AACH,wBAA8B,sBAAsB,CAAC,SAAS,EAAE,gBAAgB,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAErH"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Inserts a single row into a workbook range.
|
|
4
|
+
* @module insertRow
|
|
5
|
+
* @category Tasks
|
|
6
|
+
* @experimental
|
|
7
|
+
*/
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.default = insertWorkbookRangeRow;
|
|
13
|
+
const insertWorkbookRangeRows_ts_1 = __importDefault(require("./insertWorkbookRangeRows.js"));
|
|
14
|
+
/**
|
|
15
|
+
* Inserts a single row into a workbook range.
|
|
16
|
+
* @param originRef Reference to the workbook range to update. Only the upper-left cell is used as an origin point.
|
|
17
|
+
* @param row Array of cells to insert as a single row.
|
|
18
|
+
* @experimental
|
|
19
|
+
* @example
|
|
20
|
+
* await insertRow(originRef, [{ value: "A1" }, { value: "B1" }, { value: "C1" }]);
|
|
21
|
+
*/
|
|
22
|
+
async function insertWorkbookRangeRow(originRef, row) {
|
|
23
|
+
await (0, insertWorkbookRangeRows_ts_1.default)(originRef, [row]);
|
|
24
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inserts rows into a workbook range.
|
|
3
|
+
* @module insertRows
|
|
4
|
+
* @category Tasks
|
|
5
|
+
* @experimental
|
|
6
|
+
*/
|
|
7
|
+
import type { Cell } from "../models/Cell.ts";
|
|
8
|
+
import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
9
|
+
/**
|
|
10
|
+
* Inserts rows into a workbook range.
|
|
11
|
+
* @param originRef Reference to the workbook range to update. Only the upper-left cell is used as an origin point.
|
|
12
|
+
* @param cells Array of arrays of cells to update in the specified range.
|
|
13
|
+
* @param maxCellsPerOperation Prescribe max cells to retrieve per operation. `null` automatically determines value. DO NOT SET EXCEPT FOR ADVANCED TUNING.
|
|
14
|
+
* @experimental
|
|
15
|
+
* @example
|
|
16
|
+
* // Basic example:
|
|
17
|
+
* await insertRows(originRef, [
|
|
18
|
+
* [{ value: "A1" }, { value: "B1" }, { value: "C1" }],
|
|
19
|
+
* [{ value: "A2" }, { value: "B2" }, { value: "C2" }],
|
|
20
|
+
* [{ value: "A3" }, { value: "B3" }, { value: "C3" }],
|
|
21
|
+
* ])
|
|
22
|
+
*
|
|
23
|
+
* // Advanced example with cell formatting:
|
|
24
|
+
* await insertRows(originRef, [
|
|
25
|
+
* [{ value: "A1", format: { fontColor: "red" } }, { value: "B1" }, { value: "C1" }],
|
|
26
|
+
* [{ value: "A2" }, { value: "B2", format: { fontColor: "blue" } }, { value: "C2" }],
|
|
27
|
+
* [{ value: "A3" }, { value: "B3" }, { value: "C3", format: { fontColor: "green" } }],
|
|
28
|
+
* ]);
|
|
29
|
+
*/
|
|
30
|
+
export default function insertWorkbookRangeRows(originRef: WorkbookRangeRef, cells: Iterable<Partial<Cell>[]> | AsyncIterable<Partial<Cell>[]>, maxCellsPerOperation?: number | null): Promise<void>;
|
|
31
|
+
//# sourceMappingURL=insertWorkbookRangeRows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insertWorkbookRangeRows.d.ts","sourceRoot":"","sources":["../../../src/tasks/insertWorkbookRangeRows.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAMnE;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,wBAA8B,uBAAuB,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,oBAAoB,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB/M"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Inserts rows into a workbook range.
|
|
4
|
+
* @module insertRows
|
|
5
|
+
* @category Tasks
|
|
6
|
+
* @experimental
|
|
7
|
+
*/
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.default = insertWorkbookRangeRows;
|
|
13
|
+
const InvalidArgumentError_ts_1 = __importDefault(require("../errors/InvalidArgumentError.js"));
|
|
14
|
+
const insertWorkbookCells_ts_1 = __importDefault(require("../operations/workbookRange/insertWorkbookCells.js"));
|
|
15
|
+
const addressManipulation_ts_1 = require("../services/addressManipulation.js");
|
|
16
|
+
const batch_ts_1 = require("../services/batch.js");
|
|
17
|
+
const updateWorkbookRangeRows_ts_1 = __importDefault(require("./updateWorkbookRangeRows.js"));
|
|
18
|
+
/**
|
|
19
|
+
* Inserts rows into a workbook range.
|
|
20
|
+
* @param originRef Reference to the workbook range to update. Only the upper-left cell is used as an origin point.
|
|
21
|
+
* @param cells Array of arrays of cells to update in the specified range.
|
|
22
|
+
* @param maxCellsPerOperation Prescribe max cells to retrieve per operation. `null` automatically determines value. DO NOT SET EXCEPT FOR ADVANCED TUNING.
|
|
23
|
+
* @experimental
|
|
24
|
+
* @example
|
|
25
|
+
* // Basic example:
|
|
26
|
+
* await insertRows(originRef, [
|
|
27
|
+
* [{ value: "A1" }, { value: "B1" }, { value: "C1" }],
|
|
28
|
+
* [{ value: "A2" }, { value: "B2" }, { value: "C2" }],
|
|
29
|
+
* [{ value: "A3" }, { value: "B3" }, { value: "C3" }],
|
|
30
|
+
* ])
|
|
31
|
+
*
|
|
32
|
+
* // Advanced example with cell formatting:
|
|
33
|
+
* await insertRows(originRef, [
|
|
34
|
+
* [{ value: "A1", format: { fontColor: "red" } }, { value: "B1" }, { value: "C1" }],
|
|
35
|
+
* [{ value: "A2" }, { value: "B2", format: { fontColor: "blue" } }, { value: "C2" }],
|
|
36
|
+
* [{ value: "A3" }, { value: "B3" }, { value: "C3", format: { fontColor: "green" } }],
|
|
37
|
+
* ]);
|
|
38
|
+
*/
|
|
39
|
+
async function insertWorkbookRangeRows(originRef, cells, maxCellsPerOperation = null) {
|
|
40
|
+
let maxRowsPerOperation = maxCellsPerOperation;
|
|
41
|
+
let colCount = null;
|
|
42
|
+
let rowCount = 0;
|
|
43
|
+
const batch = [];
|
|
44
|
+
for await (const row of cells) {
|
|
45
|
+
if (colCount === null) {
|
|
46
|
+
colCount = row.length;
|
|
47
|
+
}
|
|
48
|
+
else if (colCount !== row.length) {
|
|
49
|
+
throw new InvalidArgumentError_ts_1.default("Not all rows have the same number of cells. Ensure all rows are consistent in length.");
|
|
50
|
+
}
|
|
51
|
+
if (maxRowsPerOperation === null) {
|
|
52
|
+
maxRowsPerOperation = calculateMaxRowsPerOperation(colCount, maxCellsPerOperation);
|
|
53
|
+
}
|
|
54
|
+
if (batch.push(row) >= maxRowsPerOperation) {
|
|
55
|
+
rowCount += await writeBatch(batch, originRef, rowCount, colCount);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (colCount !== null) {
|
|
59
|
+
rowCount += await writeBatch(batch, originRef, rowCount, colCount);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async function writeBatch(batch, originRef, rowsCompleted, colCount) {
|
|
63
|
+
const rowCount = batch.length;
|
|
64
|
+
if (rowCount === 0) {
|
|
65
|
+
return 0;
|
|
66
|
+
}
|
|
67
|
+
const rangeRef = (0, addressManipulation_ts_1.superRange)(originRef, rowsCompleted, rowCount, 0, colCount);
|
|
68
|
+
await (0, insertWorkbookCells_ts_1.default)(rangeRef, "Down");
|
|
69
|
+
await (0, updateWorkbookRangeRows_ts_1.default)(rangeRef, batch);
|
|
70
|
+
batch.length = 0;
|
|
71
|
+
return rowCount;
|
|
72
|
+
}
|
|
73
|
+
function calculateMaxRowsPerOperation(columnCount, overwriteMaxCellsPerOperation) {
|
|
74
|
+
const maxCellsPerOperation = overwriteMaxCellsPerOperation ?? batch_ts_1.maxCellsPerRequest;
|
|
75
|
+
const maxRowsPerOperation = Math.floor(maxCellsPerOperation / columnCount);
|
|
76
|
+
if (maxRowsPerOperation < 1) {
|
|
77
|
+
throw new InvalidArgumentError_ts_1.default("maxCellsPerOperation must be greater than or equal to the number of columns in the range."); // Excel supports up to 16k columns, which exceeds the assumed 10k cell limit per write. This might not be a problem, but not worth spending time checking this currently either.
|
|
78
|
+
}
|
|
79
|
+
return maxRowsPerOperation;
|
|
80
|
+
}
|
|
@@ -8,7 +8,7 @@ import type { Cell, CellScope } from "../models/Cell.ts";
|
|
|
8
8
|
import type { RowOffset } from "../models/Row.ts";
|
|
9
9
|
import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
10
10
|
/**
|
|
11
|
-
* Represents a row yielded by the {@link
|
|
11
|
+
* Represents a row yielded by the {@link iterateWorkbookRangeRows} generator.
|
|
12
12
|
* @property {Cell[]} cells Array of cells in the row, each containing value, text, format, and optionally style information depending on the scope.
|
|
13
13
|
* @property {RowOffset} offset Zero-based offset of the row within the original range.
|
|
14
14
|
* @property {boolean} isFirst If this is the first row in the iteration.
|
|
@@ -31,5 +31,5 @@ export type IteratedRow = {
|
|
|
31
31
|
* console.log(row);
|
|
32
32
|
* }
|
|
33
33
|
*/
|
|
34
|
-
export declare function
|
|
35
|
-
//# sourceMappingURL=
|
|
34
|
+
export declare function iterateWorkbookRangeRows(rangeRef: WorkbookRangeRef, scope?: Partial<CellScope>, maxCellsPerOperation?: number | null): AsyncIterable<IteratedRow>;
|
|
35
|
+
//# sourceMappingURL=iterateWorkbookRangeRows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iterateWorkbookRangeRows.d.ts","sourceRoot":"","sources":["../../../src/tasks/iterateWorkbookRangeRows.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,IAAI,EAAuC,SAAS,EAA6D,MAAM,mBAAmB,CAAC;AAIzJ,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAUnE;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAuB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,GAAE,OAAO,CAAC,SAAS,CAAoB,EAAE,oBAAoB,GAAE,MAAM,GAAG,IAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAgDhM"}
|
|
@@ -9,7 +9,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
9
9
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.iterateWorkbookRangeRows = iterateWorkbookRangeRows;
|
|
13
13
|
const InvalidArgumentError_ts_1 = __importDefault(require("../errors/InvalidArgumentError.js"));
|
|
14
14
|
const getWorkbookRangeFill_ts_1 = __importDefault(require("../operations/workbookRange/getWorkbookRangeFill.js"));
|
|
15
15
|
const getWorkbookRangeFont_ts_1 = __importDefault(require("../operations/workbookRange/getWorkbookRangeFont.js"));
|
|
@@ -30,7 +30,7 @@ const cell_ts_1 = require("../services/cell.js");
|
|
|
30
30
|
* console.log(row);
|
|
31
31
|
* }
|
|
32
32
|
*/
|
|
33
|
-
async function*
|
|
33
|
+
async function* iterateWorkbookRangeRows(rangeRef, scope = cell_ts_1.defaultCellScope, maxCellsPerOperation = null) {
|
|
34
34
|
const totalColumnCount = (0, addressManipulation_ts_1.countAddressColumns)(rangeRef.address);
|
|
35
35
|
const totalRowCount = (0, addressManipulation_ts_1.countAddressRows)(rangeRef.address);
|
|
36
36
|
const maxRowsPerOperation = calculateMaxRowsPerOperation(totalColumnCount, maxCellsPerOperation);
|
|
@@ -14,5 +14,5 @@ import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
|
14
14
|
* @example
|
|
15
15
|
* const firstRow = await readFirstRow(rangeRef);
|
|
16
16
|
*/
|
|
17
|
-
export default function
|
|
18
|
-
//# sourceMappingURL=
|
|
17
|
+
export default function readWorkbookRangeFirstRow(rangeRef: WorkbookRangeRef, scope?: import("../models/Cell.ts").CellScope): Promise<Cell[]>;
|
|
18
|
+
//# sourceMappingURL=readWorkbookRangeFirstRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readWorkbookRangeFirstRow.d.ts","sourceRoot":"","sources":["../../../src/tasks/readWorkbookRangeFirstRow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAKnE;;;;;;;GAOG;AACH,wBAA8B,yBAAyB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,wCAAmB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAQ7H"}
|
|
@@ -9,11 +9,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
9
9
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.default =
|
|
12
|
+
exports.default = readWorkbookRangeFirstRow;
|
|
13
13
|
const InvalidArgumentError_ts_1 = __importDefault(require("../errors/InvalidArgumentError.js"));
|
|
14
14
|
const addressManipulation_ts_1 = require("../services/addressManipulation.js");
|
|
15
15
|
const cell_ts_1 = require("../services/cell.js");
|
|
16
|
-
const
|
|
16
|
+
const iterateWorkbookRangeRows_ts_1 = require("./iterateWorkbookRangeRows.js");
|
|
17
17
|
/** * Read the first row from a given workbook range.
|
|
18
18
|
* @param rangeRef Reference to the workbook range to read.
|
|
19
19
|
* @param scope Amount of detail to include for each cell.
|
|
@@ -22,9 +22,9 @@ const iterateRows_ts_1 = require("./iterateRows.js");
|
|
|
22
22
|
* @example
|
|
23
23
|
* const firstRow = await readFirstRow(rangeRef);
|
|
24
24
|
*/
|
|
25
|
-
async function
|
|
25
|
+
async function readWorkbookRangeFirstRow(rangeRef, scope = cell_ts_1.defaultCellScope) {
|
|
26
26
|
const firstRowRef = (0, addressManipulation_ts_1.subRange)(rangeRef, 0, 1);
|
|
27
|
-
for await (const { cells } of (0,
|
|
27
|
+
for await (const { cells } of (0, iterateWorkbookRangeRows_ts_1.iterateWorkbookRangeRows)(firstRowRef, scope)) {
|
|
28
28
|
return cells;
|
|
29
29
|
}
|
|
30
30
|
throw new InvalidArgumentError_ts_1.default("No rows in the specified range.");
|
|
@@ -11,10 +11,10 @@ import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
|
11
11
|
* @param rangeRef Reference to the workbook range to read.
|
|
12
12
|
* @param scope Amount of detail to include for each cell.
|
|
13
13
|
* @returns A promise that resolves to an array of rows, each containing an array of cells.
|
|
14
|
-
* @remarks Where practical, prefer using {@link
|
|
14
|
+
* @remarks Where practical, prefer using {@link iterateWorkbookRangeRows} for more efficient memory usage.
|
|
15
15
|
* @experimental
|
|
16
16
|
* @example
|
|
17
17
|
* const rows = await readRows(rangeRef);
|
|
18
18
|
*/
|
|
19
|
-
export default function
|
|
20
|
-
//# sourceMappingURL=
|
|
19
|
+
export default function readWorkbookRangeRows(rangeRef: WorkbookRangeRef, scope?: import("../models/Cell.ts").CellScope): Promise<Cell[][]>;
|
|
20
|
+
//# sourceMappingURL=readWorkbookRangeRows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readWorkbookRangeRows.d.ts","sourceRoot":"","sources":["../../../src/tasks/readWorkbookRangeRows.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAInE;;;;;;;;;GASG;AACH,wBAA8B,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,wCAAmB,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAO3H"}
|
|
@@ -6,22 +6,22 @@
|
|
|
6
6
|
* @experimental
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.default =
|
|
9
|
+
exports.default = readWorkbookRangeRows;
|
|
10
10
|
const cell_ts_1 = require("../services/cell.js");
|
|
11
|
-
const
|
|
11
|
+
const iterateWorkbookRangeRows_ts_1 = require("./iterateWorkbookRangeRows.js");
|
|
12
12
|
/**
|
|
13
13
|
* Read all rows from a given workbook range.
|
|
14
14
|
* @param rangeRef Reference to the workbook range to read.
|
|
15
15
|
* @param scope Amount of detail to include for each cell.
|
|
16
16
|
* @returns A promise that resolves to an array of rows, each containing an array of cells.
|
|
17
|
-
* @remarks Where practical, prefer using {@link
|
|
17
|
+
* @remarks Where practical, prefer using {@link iterateWorkbookRangeRows} for more efficient memory usage.
|
|
18
18
|
* @experimental
|
|
19
19
|
* @example
|
|
20
20
|
* const rows = await readRows(rangeRef);
|
|
21
21
|
*/
|
|
22
|
-
async function
|
|
22
|
+
async function readWorkbookRangeRows(rangeRef, scope = cell_ts_1.defaultCellScope) {
|
|
23
23
|
const rows = [];
|
|
24
|
-
for await (const { cells } of (0,
|
|
24
|
+
for await (const { cells } of (0, iterateWorkbookRangeRows_ts_1.iterateWorkbookRangeRows)(rangeRef, scope)) {
|
|
25
25
|
rows.push(cells);
|
|
26
26
|
}
|
|
27
27
|
return rows;
|
|
@@ -22,5 +22,5 @@ import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
|
22
22
|
* { value: "Column B", style: { alignment: { horizontal: "Right" }, font: { bold: true } } }
|
|
23
23
|
* ]);
|
|
24
24
|
*/
|
|
25
|
-
export default function
|
|
26
|
-
//# sourceMappingURL=
|
|
25
|
+
export default function updateWorkbookRangeFirstRow(originRef: WorkbookRangeRef, cells: Partial<Cell>[]): Promise<void>;
|
|
26
|
+
//# sourceMappingURL=updateWorkbookRangeFirstRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateWorkbookRangeFirstRow.d.ts","sourceRoot":"","sources":["../../../src/tasks/updateWorkbookRangeFirstRow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGnE;;;;;;;;;;;;;;;GAeG;AACH,wBAA8B,2BAA2B,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAG5H"}
|
|
@@ -9,8 +9,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
9
9
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.default =
|
|
13
|
-
const
|
|
12
|
+
exports.default = updateWorkbookRangeFirstRow;
|
|
13
|
+
const updateWorkbookRangeRows_ts_1 = __importDefault(require("./updateWorkbookRangeRows.js"));
|
|
14
14
|
/**
|
|
15
15
|
* Update first row in a given workbook range.
|
|
16
16
|
* @param originRef Reference to the workbook range to update. Only the upper-left cell is used as an origin point.
|
|
@@ -27,7 +27,7 @@ const updateRows_ts_1 = __importDefault(require("./updateRows.js"));
|
|
|
27
27
|
* { value: "Column B", style: { alignment: { horizontal: "Right" }, font: { bold: true } } }
|
|
28
28
|
* ]);
|
|
29
29
|
*/
|
|
30
|
-
async function
|
|
30
|
+
async function updateWorkbookRangeFirstRow(originRef, cells) {
|
|
31
31
|
const rows = [cells];
|
|
32
|
-
await (0,
|
|
32
|
+
await (0, updateWorkbookRangeRows_ts_1.default)(originRef, rows);
|
|
33
33
|
}
|
|
@@ -22,5 +22,5 @@ import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
|
22
22
|
* [{ value: 2, format: accountingCellFormat }, { value: "B" }],
|
|
23
23
|
* ]);
|
|
24
24
|
*/
|
|
25
|
-
export default function
|
|
26
|
-
//# sourceMappingURL=
|
|
25
|
+
export default function updateWorkbookRangeRows(originRef: WorkbookRangeRef, cells: Iterable<Partial<Cell>[]> | AsyncIterable<Partial<Cell>[]>, maxCellsPerOperation?: number | null): Promise<void>;
|
|
26
|
+
//# sourceMappingURL=updateWorkbookRangeRows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateWorkbookRangeRows.d.ts","sourceRoot":"","sources":["../../../src/tasks/updateWorkbookRangeRows.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAWnE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAA8B,uBAAuB,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,oBAAoB,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB/M"}
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.default =
|
|
6
|
+
exports.default = updateWorkbookRangeRows;
|
|
7
7
|
/**
|
|
8
8
|
* Update rows in a given workbook range.
|
|
9
9
|
* @module updateRows
|
|
@@ -43,7 +43,7 @@ const stringCaseConversion_ts_1 = require("../services/stringCaseConversion.js")
|
|
|
43
43
|
* [{ value: 2, format: accountingCellFormat }, { value: "B" }],
|
|
44
44
|
* ]);
|
|
45
45
|
*/
|
|
46
|
-
async function
|
|
46
|
+
async function updateWorkbookRangeRows(originRef, cells, maxCellsPerOperation = null) {
|
|
47
47
|
let maxRowsPerOperation = maxCellsPerOperation;
|
|
48
48
|
let colCount = null;
|
|
49
49
|
let rowCount = 0;
|
|
@@ -62,8 +62,8 @@ async function updateRows(originRef, cells, maxCellsPerOperation = null) {
|
|
|
62
62
|
rowCount += await writeBatch(batch, originRef, rowCount, colCount);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
if (colCount) {
|
|
66
|
-
await writeBatch(batch, originRef, rowCount, colCount);
|
|
65
|
+
if (colCount !== null) {
|
|
66
|
+
rowCount += await writeBatch(batch, originRef, rowCount, colCount);
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
async function writeBatch(cells, originRef, rowsCompleted, colCount) {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inserts a single row into a workbook range.
|
|
3
|
+
* @module insertRow
|
|
4
|
+
* @category Tasks
|
|
5
|
+
* @experimental
|
|
6
|
+
*/
|
|
7
|
+
import type { Cell } from "../models/Cell.ts";
|
|
8
|
+
import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
9
|
+
/**
|
|
10
|
+
* Inserts a single row into a workbook range.
|
|
11
|
+
* @param originRef Reference to the workbook range to update. Only the upper-left cell is used as an origin point.
|
|
12
|
+
* @param row Array of cells to insert as a single row.
|
|
13
|
+
* @experimental
|
|
14
|
+
* @example
|
|
15
|
+
* await insertRow(originRef, [{ value: "A1" }, { value: "B1" }, { value: "C1" }]);
|
|
16
|
+
*/
|
|
17
|
+
export default function insertWorkbookRangeRow(originRef: WorkbookRangeRef, row: Partial<Cell>[]): Promise<void>;
|
|
18
|
+
//# sourceMappingURL=insertWorkbookRangeRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insertWorkbookRangeRow.d.ts","sourceRoot":"","sources":["../../../src/tasks/insertWorkbookRangeRow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAGnE;;;;;;;GAOG;AACH,wBAA8B,sBAAsB,CAAC,SAAS,EAAE,gBAAgB,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAErH"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inserts a single row into a workbook range.
|
|
3
|
+
* @module insertRow
|
|
4
|
+
* @category Tasks
|
|
5
|
+
* @experimental
|
|
6
|
+
*/
|
|
7
|
+
import insertWorkbookRangeRows from "./insertWorkbookRangeRows.js";
|
|
8
|
+
/**
|
|
9
|
+
* Inserts a single row into a workbook range.
|
|
10
|
+
* @param originRef Reference to the workbook range to update. Only the upper-left cell is used as an origin point.
|
|
11
|
+
* @param row Array of cells to insert as a single row.
|
|
12
|
+
* @experimental
|
|
13
|
+
* @example
|
|
14
|
+
* await insertRow(originRef, [{ value: "A1" }, { value: "B1" }, { value: "C1" }]);
|
|
15
|
+
*/
|
|
16
|
+
export default async function insertWorkbookRangeRow(originRef, row) {
|
|
17
|
+
await insertWorkbookRangeRows(originRef, [row]);
|
|
18
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inserts rows into a workbook range.
|
|
3
|
+
* @module insertRows
|
|
4
|
+
* @category Tasks
|
|
5
|
+
* @experimental
|
|
6
|
+
*/
|
|
7
|
+
import type { Cell } from "../models/Cell.ts";
|
|
8
|
+
import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
9
|
+
/**
|
|
10
|
+
* Inserts rows into a workbook range.
|
|
11
|
+
* @param originRef Reference to the workbook range to update. Only the upper-left cell is used as an origin point.
|
|
12
|
+
* @param cells Array of arrays of cells to update in the specified range.
|
|
13
|
+
* @param maxCellsPerOperation Prescribe max cells to retrieve per operation. `null` automatically determines value. DO NOT SET EXCEPT FOR ADVANCED TUNING.
|
|
14
|
+
* @experimental
|
|
15
|
+
* @example
|
|
16
|
+
* // Basic example:
|
|
17
|
+
* await insertRows(originRef, [
|
|
18
|
+
* [{ value: "A1" }, { value: "B1" }, { value: "C1" }],
|
|
19
|
+
* [{ value: "A2" }, { value: "B2" }, { value: "C2" }],
|
|
20
|
+
* [{ value: "A3" }, { value: "B3" }, { value: "C3" }],
|
|
21
|
+
* ])
|
|
22
|
+
*
|
|
23
|
+
* // Advanced example with cell formatting:
|
|
24
|
+
* await insertRows(originRef, [
|
|
25
|
+
* [{ value: "A1", format: { fontColor: "red" } }, { value: "B1" }, { value: "C1" }],
|
|
26
|
+
* [{ value: "A2" }, { value: "B2", format: { fontColor: "blue" } }, { value: "C2" }],
|
|
27
|
+
* [{ value: "A3" }, { value: "B3" }, { value: "C3", format: { fontColor: "green" } }],
|
|
28
|
+
* ]);
|
|
29
|
+
*/
|
|
30
|
+
export default function insertWorkbookRangeRows(originRef: WorkbookRangeRef, cells: Iterable<Partial<Cell>[]> | AsyncIterable<Partial<Cell>[]>, maxCellsPerOperation?: number | null): Promise<void>;
|
|
31
|
+
//# sourceMappingURL=insertWorkbookRangeRows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insertWorkbookRangeRows.d.ts","sourceRoot":"","sources":["../../../src/tasks/insertWorkbookRangeRows.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAMnE;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,wBAA8B,uBAAuB,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,oBAAoB,GAAE,MAAM,GAAG,IAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB/M"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inserts rows into a workbook range.
|
|
3
|
+
* @module insertRows
|
|
4
|
+
* @category Tasks
|
|
5
|
+
* @experimental
|
|
6
|
+
*/
|
|
7
|
+
import InvalidArgumentError from "../errors/InvalidArgumentError.js";
|
|
8
|
+
import insertWorkbookCells from "../operations/workbookRange/insertWorkbookCells.js";
|
|
9
|
+
import { superRange } from "../services/addressManipulation.js";
|
|
10
|
+
import { maxCellsPerRequest } from "../services/batch.js";
|
|
11
|
+
import updateWorkbookRangeRows from "./updateWorkbookRangeRows.js";
|
|
12
|
+
/**
|
|
13
|
+
* Inserts rows into a workbook range.
|
|
14
|
+
* @param originRef Reference to the workbook range to update. Only the upper-left cell is used as an origin point.
|
|
15
|
+
* @param cells Array of arrays of cells to update in the specified range.
|
|
16
|
+
* @param maxCellsPerOperation Prescribe max cells to retrieve per operation. `null` automatically determines value. DO NOT SET EXCEPT FOR ADVANCED TUNING.
|
|
17
|
+
* @experimental
|
|
18
|
+
* @example
|
|
19
|
+
* // Basic example:
|
|
20
|
+
* await insertRows(originRef, [
|
|
21
|
+
* [{ value: "A1" }, { value: "B1" }, { value: "C1" }],
|
|
22
|
+
* [{ value: "A2" }, { value: "B2" }, { value: "C2" }],
|
|
23
|
+
* [{ value: "A3" }, { value: "B3" }, { value: "C3" }],
|
|
24
|
+
* ])
|
|
25
|
+
*
|
|
26
|
+
* // Advanced example with cell formatting:
|
|
27
|
+
* await insertRows(originRef, [
|
|
28
|
+
* [{ value: "A1", format: { fontColor: "red" } }, { value: "B1" }, { value: "C1" }],
|
|
29
|
+
* [{ value: "A2" }, { value: "B2", format: { fontColor: "blue" } }, { value: "C2" }],
|
|
30
|
+
* [{ value: "A3" }, { value: "B3" }, { value: "C3", format: { fontColor: "green" } }],
|
|
31
|
+
* ]);
|
|
32
|
+
*/
|
|
33
|
+
export default async function insertWorkbookRangeRows(originRef, cells, maxCellsPerOperation = null) {
|
|
34
|
+
let maxRowsPerOperation = maxCellsPerOperation;
|
|
35
|
+
let colCount = null;
|
|
36
|
+
let rowCount = 0;
|
|
37
|
+
const batch = [];
|
|
38
|
+
for await (const row of cells) {
|
|
39
|
+
if (colCount === null) {
|
|
40
|
+
colCount = row.length;
|
|
41
|
+
}
|
|
42
|
+
else if (colCount !== row.length) {
|
|
43
|
+
throw new InvalidArgumentError("Not all rows have the same number of cells. Ensure all rows are consistent in length.");
|
|
44
|
+
}
|
|
45
|
+
if (maxRowsPerOperation === null) {
|
|
46
|
+
maxRowsPerOperation = calculateMaxRowsPerOperation(colCount, maxCellsPerOperation);
|
|
47
|
+
}
|
|
48
|
+
if (batch.push(row) >= maxRowsPerOperation) {
|
|
49
|
+
rowCount += await writeBatch(batch, originRef, rowCount, colCount);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (colCount !== null) {
|
|
53
|
+
rowCount += await writeBatch(batch, originRef, rowCount, colCount);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async function writeBatch(batch, originRef, rowsCompleted, colCount) {
|
|
57
|
+
const rowCount = batch.length;
|
|
58
|
+
if (rowCount === 0) {
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
61
|
+
const rangeRef = superRange(originRef, rowsCompleted, rowCount, 0, colCount);
|
|
62
|
+
await insertWorkbookCells(rangeRef, "Down");
|
|
63
|
+
await updateWorkbookRangeRows(rangeRef, batch);
|
|
64
|
+
batch.length = 0;
|
|
65
|
+
return rowCount;
|
|
66
|
+
}
|
|
67
|
+
function calculateMaxRowsPerOperation(columnCount, overwriteMaxCellsPerOperation) {
|
|
68
|
+
const maxCellsPerOperation = overwriteMaxCellsPerOperation ?? maxCellsPerRequest;
|
|
69
|
+
const maxRowsPerOperation = Math.floor(maxCellsPerOperation / columnCount);
|
|
70
|
+
if (maxRowsPerOperation < 1) {
|
|
71
|
+
throw new InvalidArgumentError("maxCellsPerOperation must be greater than or equal to the number of columns in the range."); // Excel supports up to 16k columns, which exceeds the assumed 10k cell limit per write. This might not be a problem, but not worth spending time checking this currently either.
|
|
72
|
+
}
|
|
73
|
+
return maxRowsPerOperation;
|
|
74
|
+
}
|
|
@@ -8,7 +8,7 @@ import type { Cell, CellScope } from "../models/Cell.ts";
|
|
|
8
8
|
import type { RowOffset } from "../models/Row.ts";
|
|
9
9
|
import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
10
10
|
/**
|
|
11
|
-
* Represents a row yielded by the {@link
|
|
11
|
+
* Represents a row yielded by the {@link iterateWorkbookRangeRows} generator.
|
|
12
12
|
* @property {Cell[]} cells Array of cells in the row, each containing value, text, format, and optionally style information depending on the scope.
|
|
13
13
|
* @property {RowOffset} offset Zero-based offset of the row within the original range.
|
|
14
14
|
* @property {boolean} isFirst If this is the first row in the iteration.
|
|
@@ -31,5 +31,5 @@ export type IteratedRow = {
|
|
|
31
31
|
* console.log(row);
|
|
32
32
|
* }
|
|
33
33
|
*/
|
|
34
|
-
export declare function
|
|
35
|
-
//# sourceMappingURL=
|
|
34
|
+
export declare function iterateWorkbookRangeRows(rangeRef: WorkbookRangeRef, scope?: Partial<CellScope>, maxCellsPerOperation?: number | null): AsyncIterable<IteratedRow>;
|
|
35
|
+
//# sourceMappingURL=iterateWorkbookRangeRows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iterateWorkbookRangeRows.d.ts","sourceRoot":"","sources":["../../../src/tasks/iterateWorkbookRangeRows.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,IAAI,EAAuC,SAAS,EAA6D,MAAM,mBAAmB,CAAC;AAIzJ,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAUnE;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAuB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,GAAE,OAAO,CAAC,SAAS,CAAoB,EAAE,oBAAoB,GAAE,MAAM,GAAG,IAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAgDhM"}
|
|
@@ -24,7 +24,7 @@ import { defaultCellScope } from "../services/cell.js";
|
|
|
24
24
|
* console.log(row);
|
|
25
25
|
* }
|
|
26
26
|
*/
|
|
27
|
-
export async function*
|
|
27
|
+
export async function* iterateWorkbookRangeRows(rangeRef, scope = defaultCellScope, maxCellsPerOperation = null) {
|
|
28
28
|
const totalColumnCount = countAddressColumns(rangeRef.address);
|
|
29
29
|
const totalRowCount = countAddressRows(rangeRef.address);
|
|
30
30
|
const maxRowsPerOperation = calculateMaxRowsPerOperation(totalColumnCount, maxCellsPerOperation);
|
|
@@ -14,5 +14,5 @@ import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
|
14
14
|
* @example
|
|
15
15
|
* const firstRow = await readFirstRow(rangeRef);
|
|
16
16
|
*/
|
|
17
|
-
export default function
|
|
18
|
-
//# sourceMappingURL=
|
|
17
|
+
export default function readWorkbookRangeFirstRow(rangeRef: WorkbookRangeRef, scope?: import("../models/Cell.ts").CellScope): Promise<Cell[]>;
|
|
18
|
+
//# sourceMappingURL=readWorkbookRangeFirstRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readWorkbookRangeFirstRow.d.ts","sourceRoot":"","sources":["../../../src/tasks/readWorkbookRangeFirstRow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAKnE;;;;;;;GAOG;AACH,wBAA8B,yBAAyB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,wCAAmB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAQ7H"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import InvalidArgumentError from "../errors/InvalidArgumentError.js";
|
|
8
8
|
import { subRange } from "../services/addressManipulation.js";
|
|
9
9
|
import { defaultCellScope } from "../services/cell.js";
|
|
10
|
-
import {
|
|
10
|
+
import { iterateWorkbookRangeRows } from "./iterateWorkbookRangeRows.js";
|
|
11
11
|
/** * Read the first row from a given workbook range.
|
|
12
12
|
* @param rangeRef Reference to the workbook range to read.
|
|
13
13
|
* @param scope Amount of detail to include for each cell.
|
|
@@ -16,9 +16,9 @@ import { iterateRows } from "./iterateRows.js";
|
|
|
16
16
|
* @example
|
|
17
17
|
* const firstRow = await readFirstRow(rangeRef);
|
|
18
18
|
*/
|
|
19
|
-
export default async function
|
|
19
|
+
export default async function readWorkbookRangeFirstRow(rangeRef, scope = defaultCellScope) {
|
|
20
20
|
const firstRowRef = subRange(rangeRef, 0, 1);
|
|
21
|
-
for await (const { cells } of
|
|
21
|
+
for await (const { cells } of iterateWorkbookRangeRows(firstRowRef, scope)) {
|
|
22
22
|
return cells;
|
|
23
23
|
}
|
|
24
24
|
throw new InvalidArgumentError("No rows in the specified range.");
|
|
@@ -11,10 +11,10 @@ import type { WorkbookRangeRef } from "../models/WorkbookRange.ts";
|
|
|
11
11
|
* @param rangeRef Reference to the workbook range to read.
|
|
12
12
|
* @param scope Amount of detail to include for each cell.
|
|
13
13
|
* @returns A promise that resolves to an array of rows, each containing an array of cells.
|
|
14
|
-
* @remarks Where practical, prefer using {@link
|
|
14
|
+
* @remarks Where practical, prefer using {@link iterateWorkbookRangeRows} for more efficient memory usage.
|
|
15
15
|
* @experimental
|
|
16
16
|
* @example
|
|
17
17
|
* const rows = await readRows(rangeRef);
|
|
18
18
|
*/
|
|
19
|
-
export default function
|
|
20
|
-
//# sourceMappingURL=
|
|
19
|
+
export default function readWorkbookRangeRows(rangeRef: WorkbookRangeRef, scope?: import("../models/Cell.ts").CellScope): Promise<Cell[][]>;
|
|
20
|
+
//# sourceMappingURL=readWorkbookRangeRows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readWorkbookRangeRows.d.ts","sourceRoot":"","sources":["../../../src/tasks/readWorkbookRangeRows.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAInE;;;;;;;;;GASG;AACH,wBAA8B,qBAAqB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,wCAAmB,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAO3H"}
|