PyExcel
Библиотека на Python с отворен код за електронни таблици
Четете, създавайте, обединявайте и филтрирайте данни в CSV, ODS, XLS, XLSX и XLSM файлове с електронни таблици чрез API на Python.
PyExcel е един Python API с отворен код, който поддържа работа с няколко популярни формата на електронни таблици. Той позволява на софтуерните програмисти да четат, манипулират и записват данни във файлови формати CSV, ODS, XLS, XLSX и XLSM. API е силно фокусиран върху данните, а не върху файловите формати. Библиотеката помага на уеб разработчиците да се справят с повечето файлови формати на Excel, като предоставя общ интерфейс за програмиране.
Много е лесно да получите или експортирате данни от MS Excel файлове. Най-често изисква едноредов код за получаване на данни от файловете на Excel. Има само един API за четене и запис на данни в различни файлови формати на Excel. Няколко важни функции се поддържат напълно от API, като четене и актуализиране на данни в електронна таблица, обединяване на всички excel файлове в една директория, разделяне на работна книга, извличане на лист от работна книга, сливане на редове и клетки, стилизиране на колони, добавяне или премахване на колона от лист, филтриране на данни и много други. API предоставя списък с файлови формати, поддържани от външни добавки. Можете да използвате pip, за да добавите или премахнете плъгин.
Първи стъпки с PyExcel
На първо място, трябва да имате Python 2.6 или по-нова версия, инсталирана на вашата система. Препоръчителният начин за инсталиране е чрез pip. Моля, използвайте следната команда.
Инсталирайте PyExcel чрез PIP команда
pip install pyexcel
Python API за работа с Excel Spreadsheet
API на PyExcel позволява на разработчиците на софтуер да осъществяват достъп, да четат, записват и манипулират данни в различни формати на Excel като CSV, ODS, XLS, XLSX и XLSM. Много е лесно да импортирате или експортирате данни от Excel файлове с помощта на PyExcel API. Поддържа добавяне на нов ред към съществуващ файл, актуализиране на ред в съществуващ файл, добавяне или актуализиране на колона към съществуващ файл, обединяване или разделяне на листове, търсене на данни, конвертиране на excel файлове в други формати и много други.
Добавяне на нов ред към съществуващия файл с електронни таблици чрез Python API
import pyexcel as pe
sheet = pe.get_sheet(file_name="example.xls")
sheet.row += [12, 11, 10]
sheet.save_as("new_example.xls")
pe.get_sheet(file_name="new_example.xls")
Обединяване и разделяне на работен лист на Excel
PyExcel API дава възможност на програмиста да обединява файлове, които са разпръснати в директория, в една работна книга на Excel. Всеки файл ще се превърне в лист в работна книга. Той също така предоставя функции за смесване и съпоставяне с други формати на Excel като XLS, CSV, XLSM и ODS. Освен това ви улеснява да разделите работна книга на няколко файла. Да предположим, че имате книга, съдържаща няколко работни листа, като използвате библиотеката PyExcel с отворен код, можете да разделите всеки в един лист в Excel файл.
Обединяване или разделяне на файлове на Excel чрез Python API
//merge two files into one file
from pyexcel.cookbook import merge_two_files
merge_two_files("example.csv", "example.xls", "output.xls")
//Split a workbook into single sheet files
from pyexcel.cookbook import split_a_book
split_a_book("megabook.xls", "output.xls")
import glob
outputfiles = glob.glob("*_output.xls")
for file in sorted(outputfiles):
print(file)
Филтриране на данни в електронни таблици
PyExcel API предоставя функции за разработчиците да филтрират данни според собствените си нужди. Да предположим, че имате голямо количество данни и искате да филтрирате някои данни от тях. С помощта на API можете лесно да направите това. Той също така поддържа филтриране на празни редове или колони от лист. Можете също да запишете данните от филтъра в друг файл.
Как да филтрирате празния Рос от Excel Sheet в Python Apps
import pyexcel as pe
sheet = pe.Sheet([[1,2,3],['','',''],['','',''],[1,2,3]])
//define filter
def filter_row(row_index, row):
result = [element for element in row if element != '']
return len(result)==0
// Apply filter
del sheet.row[filter_row]