Как получить информацию из файла xlsx в Python?

Я должен создать список рассылки людей, принадлежащих к определенному учреждению. Информация доступна только в файле.xlsx. Столбцы xlsx: учреждение, DOB, программа, ..., EmailID. Как мне сделать это, вместо того, чтобы читать каждую запись самостоятельно, а затем вводить электронную почту в контакты Google?

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

3 ответа

Решение

Вы можете читать / записывать файлы.xlsx, используя openpyxl. Вот ссылка на документацию.

Вы можете прочитать из.xlsx следующим образом:

from openpyxl import load_workbook
wb2 = load_workbook('email_contacts.xlsx')
print wb2.get_sheet_names()

Чтобы добавить данные в Google Контакты, вы можете использовать API контактов Google. Просто прочитайте официальную документацию по использованию API.

Изменить: openpyxl упомянутый в другом ответе, кажется, лучше.

Самый простой способ - сохранить файл в формате XLS (формат 97-2003), а затем использовать модуль XLRD для анализа файла. Чтобы позаботиться о файлах, которые еще не в этом формате, вы можете открыть файл в Excel, а затем сохранить в правильном формате:

xlsx_files = glob.glob('*.xlsx') 

if len(xlsx_files) != 0:
    xlApp = win32com.client.Dispatch('Excel.Application') 

    xlApp.DisplayAlerts = False
    for file in xlsx_files: 
        xlWb = xlApp.Workbooks.Open(os.path.join(os.getcwd(), file)) 
        xlWb.SaveAs(os.path.join(os.getcwd(), file.split('.xlsx')[0] + 
    '.xls'), FileFormat=1) 
        xlWb.Close()

    for file in xlsx_files: 
        os.unlink(file) 

Чтобы затем получить доступ к листу с помощью xlrd:

wb = xlrd.open_workbook(file)
#First sheet:
sh = wb.sheet_by_name(wb.sheet_names()[0])
#Select a column, columns start at 0:
pl_id_column = sh.col_values(0)
#Iterate through the rows:
for rownum in range(12,sh.nrows):
    print pl_id_column[rownum]

Проще всего запустить Excel и сохранить файл 'xlsx' как файл 'csv'. Тогда это все ASCII и легко распечатать один столбец "EmailID", если это единственный столбец, который вы хотите.

Чтобы добавить данные в Google Контакты, вы можете использовать API контактов Google. Просто прочитайте официальную документацию по использованию API.

Другие вопросы по тегам