如何从 Python 中的 xlsx 文件获取信息?
How to get information from an xlsx file in Python?
我必须创建属于某个机构的人员的邮寄名单。该信息仅在 .xlsx 文件中可用。 xlsx的列如下:institution, DOB, Program, ..., EmailID。我该怎么做,而不是自己阅读每个条目然后将电子邮件输入 Google 联系人?
我知道我问了很多,特别是因为我不知道如何操作 Google 张;就像我不确定 Google 表中是否有办法做到这一点。我只需要一些指示。
编辑:另一个答案中提到的 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 访问 sheet:
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 联系人中,您可以使用 Google 联系人 API。只需阅读有关如何使用 API.
的官方文档
您可以使用 openpyxl read/write .xlsx 文件。这是 link 到 documentation。
您可以从 .xlsx 中读取如下内容:
from openpyxl import load_workbook
wb2 = load_workbook('email_contacts.xlsx')
print wb2.get_sheet_names()
要将详细信息添加到 Google 联系人中,您可以使用 Google 联系人 API。只需阅读有关如何使用 API.
的官方文档
我必须创建属于某个机构的人员的邮寄名单。该信息仅在 .xlsx 文件中可用。 xlsx的列如下:institution, DOB, Program, ..., EmailID。我该怎么做,而不是自己阅读每个条目然后将电子邮件输入 Google 联系人?
我知道我问了很多,特别是因为我不知道如何操作 Google 张;就像我不确定 Google 表中是否有办法做到这一点。我只需要一些指示。
编辑:另一个答案中提到的 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 访问 sheet:
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 联系人中,您可以使用 Google 联系人 API。只需阅读有关如何使用 API.
的官方文档您可以使用 openpyxl read/write .xlsx 文件。这是 link 到 documentation。
您可以从 .xlsx 中读取如下内容:
from openpyxl import load_workbook
wb2 = load_workbook('email_contacts.xlsx')
print wb2.get_sheet_names()
要将详细信息添加到 Google 联系人中,您可以使用 Google 联系人 API。只需阅读有关如何使用 API.
的官方文档