Общее количество строк и столбцов - Excel Office JS

Я использовал getRangeByIndexes, так как это лучший способ использовать числа для получения диапазонов в Office-JS. Проблема, с которой я сталкиваюсь, заключается в том, что когда мне нужно использовать всю строку/столбцы, я прибегаю к следующему. Я читаю и вижу, что количество строк/столбцов не менялось в течение длительного времени, но я знаю, что в vba я использовал rows.count, чтобы убедиться, что код был динамическим, какая бы версия Excel не использовала количество строк в электронной таблице. .

Есть ли что-то подобное в Office-JS?

const Excel_Worksheet_Lengths_Obj = {
    "total_rows": 1048576,
    "total_cols": 16384,
}

var ws = context.workbook.worksheets.getActiveWorksheet()

var Method_Headers_Rng = ws.getRangeByIndexes(0,0,1,Excel_Worksheet_Lengths_Obj.total_cols)
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
0
46
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это сделает это за вас...

const sheet = context.workbook.worksheets.getActiveWorksheet();

let rangeRows = sheet.getRange("A:A").load(["rowCount"]);
let rangeColumns = sheet.getRange("1:1").load(["columnCount"]);

await context.sync();

console.info("Row Count = " + rangeRows.rowCount);
console.info("Column Count = " + rangeColumns.columnCount);

Все, что касается количества строк или столбцов, должно выполняться на уровне диапазона, а не на уровне рабочего листа.

Передача первого столбца для достижения количества строк и первой строки для достижения количества столбцов делает свое дело. Не идеал, но такова жизнь.

Вы никогда не говорили, что хотите чего-то лучшего, вы спросили, как это сделать, и я дал вам ответ. Я согласен, это не «лучше», но если Excel изменится, это не будет означать, что вам нужно вернуться и перефразировать код. Кроме того, комментарий console.info — это шутка?!?

Skin 21.03.2022 02:57

«... чтобы убедиться, что код был динамическим, какая бы версия Excel не использовала количество строк в электронной таблице» ... я дал вам ответ, и он вам не нравится, хорошо, но вы' Если вы стреляете в мессенджера, поговорите с Microsoft. Кроме того, сотни ответов SO каждый день отправляют OP по другому пути. Вы никогда ничего не говорили о том, что не хотите вызывать синхронизацию или что «НЕТ» было бы лучшим ответом. Слова «не идеальна, но такова жизнь» делают это довольно ясным, И я также предоставил подход для других, если они того пожелают. Опять же, если вы недовольны, обратитесь в Microsoft. Извините за попытку!

Skin 21.03.2022 03:14

Я понимаю вашу позицию и прошу прощения, если я прозвучал грубо, но я думаю, что в вашем ответе будет сказано, что это хуже, чем мой нынешний подход, и что мне, вероятно, лучше, как я это делаю. Из того, что я прочитал, lrow/lcol не изменился с тех пор, как не был представлен Office-JS, поэтому я не вижу преимущества дополнительной синхронизации. Хотя синхронизация может быть пакетной... поэтому, вероятно, ею можно пренебречь. Вероятно, не буду использовать его, но стоит оставить для сообщества. Спасибо

FreeSoftwareServers 21.03.2022 03:22

Другие вопросы по теме