如何从Python中获取xlsx文件中的信息?

时间:2015-02-10 10:48:46

标签: python import-from-excel

我必须创建一个属于某个机构的人的邮件列表。该信息仅在.xlsx文件中提供。 xlsx的列如下:institution,DOB,Program,...,EmailID。我该怎么做,而不是自己阅读每个条目,然后在Google联系人中键入电子邮件?

我知道我问了很多,特别是因为我不知道如何操作Google表格;就像我不确定Google表格中是否有办法做到这一点。我只需要一些指示。

3 个答案:

答案 0 :(得分:3)

您可以使用openpyxl读/写.xlsx文件。以下是documentation的链接。

您可以从.xlsx中读取以下内容:

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

要将详细信息添加到Google通讯录,您可以使用Google通讯录API。请阅读有关如何使用API​​的官方文档。

答案 1 :(得分:0)

编辑:其他答案中提到的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]

答案 2 :(得分:-1)

最简单的方法是运行excel并保存' xlsx'归档为' csv'文件。然后它全部是ASCII并且很容易打印出一列' EmailID'如果那是你想要的唯一一栏。

要将详细信息添加到Google通讯录,您可以使用Google通讯录API。请阅读有关如何使用API​​的官方文档。