Недавно я получил электронную таблицу и задался вопросом: Почему эти данные в электронной таблице? Очевидно, что это сложно и требует, чтобы вы просматривали элементы на нескольких листах. Разве жизнь не была бы проще, если бы это было в базе данных? Если вы не думали об этом, прекратите читать сейчас (хотя вы могли бы сделать хуже, чем читать о SQL против Excel для фона).

Все еще здесь? Затем я расскажу вам об инструменте, который решает эту проблему (хотя и не полностью, см. примечание в конце). Начнем с примера:

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

Я мог видеть SQL в своей голове, но я смотрел на две HTML-таблицы, так что вот решение:

  1. Скопируйте две таблицы в Excel, Calc, Google Sheets или электронную таблицу по вашему выбору.
  2. Установите xls2db и запустите его для файла электронной таблицы, чтобы создать файл базы данных SQLite (требуется Python и SQLite).
  3. Запросите вашу базу данных SQLite (я использую для этого расширение Firefox), используя следующий SQL:
SELECT * FROM sheet1, sheet2 where 
"Free to use" like 'Yes%' 
and sheet1.Software=sheet2.Name

Вот и все.

Обратите внимание, что это не масштабируется до миллионов строк, а целостность данных настолько хороша, насколько хороши данные электронной таблицы. В этом случае редакторы Википедии следят за тем, чтобы названия программ на листе1 и листе2 были одинаковыми, потому что любая опечатка приведет к красной ссылке на странице Википедии.