На одной странице может выводиться до двадцати таблиц, каждая из своего csv документа.
Время от времени эти таблицы приходится редактировать, иногда довольно часто.
Так же, желательно этим заниматься не одному, а в компании единомышленников.
Хорошим решением казалось тогда использование Google таблиц. Есть возможность назначать пользователей редакторами.
Так же из Google таблиц можно экспортировать прямо в csv, но... А вот это но как раз всё портило.
Заключалось оно в том что экспорт подразумевает под собой формат с разделителем запятой и в кодировке UTF-8.
Мне как раз надо было чтоб разделителем была точка с запятой, чтоб текст не брался в кавычки, чтоб кодировка была Win-1251.
И вот нашёлся на просторах интернета замечательный инструмент для работы из консоли - xlsx2csv.
Теперь мы по крону вытягиваем из Google таблиц многостраничный документ xlsx, обрабатываем его xlsx2csv, на выходе получаем каждую страницу в отдельном документе csv.
Создали в удобном месте файл generate.sh, а в него прописали следующие команды:
#!/bin/bash
cd /home/web/site.org.ua/ && wget -O tmp/table.xlsx https://docs.google.com/spreadsheets/d/1Fd8c6IJF4oLT1cs5QmZ1KK8/pub?output=xlsx && ./xlsx2csv.py -a -c cp1251 -d ";" -i tmp/table.xlsx tmp/ && cp -r tmp/*.csv public_html/images/tables
Объясню подробнее.
Сначала мы переходим в директорию из которой это всё выполняетсяcd /home/web/site.org.ua/
потом скачиваем документ и сохраняем его с указанными нами названием и расширением
wget -O tmp/table.xlsx https://docs.google.com/spreadsheets/d/1Fd8c6IJF4oLT1cs5QmZ1KK8/pub?output=xlsx
обрабатываем с помощью xlsx2csv
./xlsx2csv.py -a -c cp1251 -d ";" -i tmp/table.xlsx tmp/
Здесь остановлюсь подробнее.
-a как раз говорит о том что нужно каждую страницу выводить в отдельный csv документ
-c желаемая кодировка (кодировка меняется только если xlsx2csv выполняется с помощью python 3)
-d желаемый разделитель
-i игнорировать пустые ячейки внизу (пустые ячейки справа сам не удаляет)
какой документ обрабатываем и куда кладём то, что получаем.
ну и копируем с заменой что получили на место рабочих документов
cp -r tmp/*.csv public_html/images/tables
Полный вывод справки доступен по --help.
Надеюсь что-то полезное из данного материала вы для себя почерпнули.