Использование Python для разбора табличных данных

python_excel_logos

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

В этой статье мы обсудим различные способы обработки этих файлов и анализа их, чтобы получить необходимую информацию с помощью Python (2.7).

Электронная таблица

До начала анализа таблицы, необходимо понять, как они устроены. Файл таблицы представляет собой набор листов и каждый лист представляет собой набор ячеек данных размещены в сетке. В листе, клетка данных идентифицируется двумя значениями — его номера строк и столбцов.

1419667062spreadsheet
image-618

Например, в данном примере, таблица содержит только один лист, Query1. Ячейка 2A соответствует второй строке и первом столбце. Значение ячейки А2 является «12510001».

Хотя программы с графическим интерфейсом назначать буквы названия столбцов, когда мы разбираем данные, мы начнем номера строк и столбцов с 0 Это означает, что клетка A2 будет соответствовать (1, 0),  В4, это (1,3) , 3C (2, 2), и так далее.

Быстрый Резюме CSV-файлов

CSV означает «значения разделенные запятыми» (или любым другим разделителем). Типичный файл CSV выглядит следующим образом:

"ID", "Name", "Age"
"1", "John", "11"
"2", "Mary", "12"
"3", "Sherlock", "13"

Вы можете конвертировать электронные таблицы в CSV-файлы, чтобы облегчить обработку. CSV файлы могут быть легко проанализированы с помощью модуля CSV в Python.

Получение необходимых модулей Python

Для чтения и записи XLS файлов, вам нужно будет установить два модуля — xlrd и xlwt. Вы можете установить их с помощью одного из Python менеджеров: pipили easy_install.

pip install xlrd
pip install xlwt

Для чтения и записи файлов CSV, необходимо модуль CSV, который поставляется с предварительно установленным Python 2.7.

Чтение электронной таблицы

Если у вас есть файл, и вы хотите анализировать данные в нем, необходимо выполнить следующее пункты в указанном порядке:

  • Импорт модуля xlrd
  • Откройте файл электронной таблицы (или книги)
  • Выберите лист
  • Извлеките данные из отдельных ячеек

Откройте файл электронной таблицы

Давайте сначала открыть файл в Python.

import xlrd
workbook = xlrd.open_workbook('my_file_name.xls')

Если ваш файл имеет символы, отличные от ASCII, вы должны открыть его в формате Юникод следующим образом:

workbook = xlrd.open_workbook('my_file_name.xls', encoding='cp1252')

Если ваша электронная таблица очень большая, вы можете добавить аргумент on_demand в open_workbook, который загружает только текущие листы в память:

workbook = xlrd.open_workbook('my_file_name.xls', on_demand = True)

Открытие листа

Если вы знаете имя листа, вы можете открыть его, выполнив следующие действия:

worksheet = workbook.sheet_by_name('My_Sheet_Name')

Если вы не уверены в названии листа, вы можете открыть первый лист по его индексу:

worksheet = workbook.sheet_by_index(0)

workbook.nsheets возвращает количество листов. workbook.sheet_names() выдает список имен листов в файле, который поможет вам с перебором листов.

Получение данных из ячеек

После того как вы выбрали таблицу, вы можете извлечь значение конкретной ячейки данных следующим образом.

# Value of 1st row and 1st column
worksheet.cell(0, 0).value

Вы можете использовать циклы для получения всех данных.

Вы можете обнаружить пустую ячейку с помощью empty_cell.

if worksheet.cell(0, 0).value == xlrd.empty_cell.value:
    # Do something

Создание электронной таблицы

Процесс создания таблицы состоит из следующих пунктов:

  • Импортировать модуль xlwt
  • Создайте пустой файл электронной таблицы (или книги)
  • Создать лист в файле
  • Разместить значения в ячейках
  • Сохранить книгу

Создайте новый файла

Вы можете создать новый файл электронной таблицы с помощью xlwt. Пример создания файла:

import xlwt
workbook = xlwt.Workbook()
workbook.save('my_file.xls')

Вы можете открыть его в Unicode так же, как и в случае с xlrd.

Добавление листов

Вы можете добавить листы с помощью add_sheet.

sheet = workbook.add_sheet('Sheet_1')

Работа с ячейками

После того как вы создали таблицу, вы можете добавить значения в конкретную ячейку следующим образом.

sheet.write(0, 0,'Inserting data in 1st Row and 1st Column')

Если вы хотите, записать данные в строки, вы можете выбрать строку и добавить данные.

row = sheet.row(1) # Selecting the second row
row.write(0,'2nd Row and 1st Column')
row.write(1,'1st Row and 2nd Column')

Если вы хотите, чтобы удалить данные в строке, это может быть сделано одной командой.

row.flush_row_data()

Так же, вы можете установить ширину столбца

sheet.col(0).width = 625 # In pixels

Добавление стилей к ячейкам

С xlwt, вы можете не только записать значения в ячейках, но вы можете добавить пользовательские стили. Следующий фрагмент кода показывает, как это сделать:

style = xlwt.XFStyle()
font = xlwt.Font('Arial')
style.font = font
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = xlwt.Style.colour_map['red']
style.pattern = pattern
sheet.write(0, 0, "Some data", style)

Вывод

Как я уже упоминал ранее, создания и анализа электронных таблиц неизбежно, когда вы работаете с огромными веб-приложениями. Таким образом, знакомство и разбор библиотек может только помочь вам, когда возникает необходимость.