Подтвердить что ты не робот

Почему в Microsoft Excel все еще существует ограничение по строкам?

До Office 2007 Excel имеет максимум 65 000 строк. Office 2007 столкнулся с тем, что максимум до 1 миллиона строк, что, конечно же, приятнее; но мне любопытно - почему вообще существует предел? Очевидно, что производительность будет замедляться экспоненциально, поскольку вы увеличиваете размер электронных таблиц; но не очень сложно оптимизировать Excel для этого, начиная с небольшого листа и динамически "переустанавливая" его только по мере необходимости.  Учитывая, сколько работы это должно было сделать, чтобы увеличить лимит с 65 000 до 1 миллиона, почему они не прошли весь путь, поэтому он ограничивался только объемом доступной памяти и дискового пространства?

4b9b3361

Ответ 1

(обновлено из-за ошибки... Предложение всем: не отправляйте сообщение SO, пока вы не проснетесь)

Возможно, из-за оптимизации. Excel 2007 может содержать максимум 16 384 столбца и 1 048 576 строк. Странные числа?

14 бит = 16 384, 20 бит = 1 048 576

14 + 20 = 34 бит = может храниться более одного 32-разрядного регистра.

Но им также необходимо сохранить формат ячейки (текст, номер и т.д.) и форматирование (цвета, границы и т.д.). Предполагая, что они используют два 32-битных слова (64 бит), они используют 34 бита для номера ячейки и имеют 30 бит для других вещей.

Почему это так важно? В памяти им не нужно выделять всю память, необходимую для всей электронной таблицы, а только память, необходимую для ваших данных, и каждая информация помечена в той ячейке, в которой она должна находиться.

Обновление 2016:

Найдена ссылка на Спецификация Microsoft для Excel 2013 и 2016

  • Открытые книги: ограничено доступной памятью и системными ресурсами.
  • Размер рабочего листа: 1,048,576 строк (20 бит) на 16 384 столбца (14 бит)
  • Ширина столбца: 255 символов (8 бит)
  • Высота строки: 409 баллов.
  • Разрывы страниц: 1,026 горизонтальный и вертикальный (неожиданный номер, вероятно, неправильный, 10 бит - 1024)
  • Общее количество символов, которое может содержать ячейка: 32 767 символов (подписанные 16 бит)
  • Символы в верхнем или нижнем колонтитуле: 255 (8 бит)
  • Листы в рабочей книге: ограничено доступной памятью (по умолчанию 1 лист)
  • Цвета в рабочей книге: 16 миллионов цветов (32 бит с полным доступом к 24-битовому спектру цветов).
  • Именованные представления в рабочей книге: ограничено доступной памятью
  • Уникальные форматы ячеек/стилей ячеек: 64 000 (16 бит = 65536)
  • Стили стилей: 256 (8 бит)
  • Вес линии и стили: 256 (8 бит)
  • Уникальные типы шрифтов: 1024 (10 бит) глобальных шрифтов, доступных для использования; 512 на книгу
  • Форматы чисел в рабочей книге: от 200 до 250, в зависимости от языковой версии Excel, которую вы установили
  • Имена в рабочей книге: ограничено доступной памятью
  • Windows в рабочей книге: ограничен доступной памятью
  • Гиперссылки на листе: 66,530 гиперссылок (неожиданный номер, возможно, неправильный. 16 бит = 65536)
  • Панели в окне: 4
  • Связанные листы: ограниченная доступная память
  • Сценарии: ограничено доступной памятью; в сводном отчете показаны только первые 251 сценарий
  • Изменение ячеек в сценарии: 32
  • Регулируемые ячейки в Solver: 200
  • Пользовательские функции: ограниченная доступная память
  • Диапазон масштабирования: от 10% до 400%.
  • Отчеты: ограничено доступной памятью
  • Сортировка ссылок: 64 в одном виде; неограниченный при использовании последовательных сортировок
  • Уровни отмены: 100
  • Поля в форме данных: 32
  • Параметры рабочей книги: 255 параметров для каждой книги
  • Элементы, отображаемые в раскрывающихся списках фильтра: 10 000

Ответ 2

В слове - скорость. Индекс для до миллиона строк подходит для 32-битного слова, поэтому его можно эффективно использовать на 32-разрядных процессорах. Функциональные аргументы, которые вписываются в регистр CPU, чрезвычайно эффективны, в то время как те, которые больше, требуют доступа к памяти при каждом вызове функции, намного медленнее. Обновление электронной таблицы может быть интенсивной операцией, включающей многие ссылки на ячейки, поэтому скорость важна. Кроме того, команда Excel ожидает, что любой, кто имеет дело с более чем миллионом строк, будет использовать базу данных, а не электронную таблицу.