如何使用 xlsxwriter(没有 pandas)将一组列表写入 Excel?
How to write a set of lists to Excel using xlsxwriter (without pandas)?
我创建了 3 个单独的列表并将它们附加到一个空列表中。
我想在Company
、Sector
、URL
、
栏下写下Excel中的每个列表
我尝试迭代它们但没有成功。
我想不经过 Pandas。
import xlsxwriter
workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet('To add')
companies = ['House1', 'House2']
sector = ['Kitchen', 'Living room']
url = ['www.house1.com', 'www.house2.com']
list_companies = []
list_companies.append(companies)
list_companies.append(sector)
list_companies.append(url)
head = ['Company', 'Sector', 'URL']
bold = workbook.add_format({'bold':True})
worksheet.write_row(0,0,head, bold)
workbook.close()
为方便起见,将列表聚合转换为字典。
要写入 excel,请使用 worksheet.write(row, col, *args)
,如下所示:
import xlsxwriter
workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet('To add')
companies = ['House1', 'House2']
sectors = ['Kitchen', 'Living room']
urls = ['www.house1.com', 'www.house2.com']
companies_dictionary = {}
companies_dictionary['companies'] = companies
companies_dictionary['sector'] = sectors
companies_dictionary['url'] = urls
head = ['Company', 'Sector', 'URL']
bold = workbook.add_format({'bold': True})
worksheet.write_row(0, 0, head, bold)
head_offset = 1
for company_index in range(len(companies_dictionary['companies'])):
current_excel_row_number = company_index + head_offset + 1
worksheet.write(f'A{current_excel_row_number}', companies_dictionary['companies'][company_index])
worksheet.write(f'B{current_excel_row_number}', companies_dictionary['sector'][company_index])
worksheet.write(f'C{current_excel_row_number}', companies_dictionary['url'][company_index])
workbook.close()
结果:
Company Sector URL
House1 Kitchen www.house1.com
House2 Living room www.house2.com
最干净的方法可能是使用 write_column()
方法。像这样:
import xlsxwriter
workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet('To add')
companies = ['House1', 'House2']
sector = ['Kitchen', 'Living room']
url = ['http://www.house1.com', 'http://www.house2.com']
head = ['Company', 'Sector', 'URL']
bold = workbook.add_format({'bold':True})
# Make some of the columns wider for clarity.
worksheet.set_column(0, 1, 12)
worksheet.set_column(2, 2, 20)
# Write the data.
worksheet.write_row(0,0,head, bold)
worksheet.write_column(1, 0, companies)
worksheet.write_column(1, 1, sector)
worksheet.write_column(1, 2, url)
workbook.close()
输出:
请注意,我在网址中添加了 http://
,以便 XlsxWriter 将它们转换为 Excel 个链接。
要使用 XlsxWriter 写入数据,请参阅 XlsxWriter 文档的 Working with and Writing Data 部分。
我创建了 3 个单独的列表并将它们附加到一个空列表中。
我想在Company
、Sector
、URL
、
我尝试迭代它们但没有成功。
我想不经过 Pandas。
import xlsxwriter
workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet('To add')
companies = ['House1', 'House2']
sector = ['Kitchen', 'Living room']
url = ['www.house1.com', 'www.house2.com']
list_companies = []
list_companies.append(companies)
list_companies.append(sector)
list_companies.append(url)
head = ['Company', 'Sector', 'URL']
bold = workbook.add_format({'bold':True})
worksheet.write_row(0,0,head, bold)
workbook.close()
为方便起见,将列表聚合转换为字典。
要写入 excel,请使用 worksheet.write(row, col, *args)
,如下所示:
import xlsxwriter
workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet('To add')
companies = ['House1', 'House2']
sectors = ['Kitchen', 'Living room']
urls = ['www.house1.com', 'www.house2.com']
companies_dictionary = {}
companies_dictionary['companies'] = companies
companies_dictionary['sector'] = sectors
companies_dictionary['url'] = urls
head = ['Company', 'Sector', 'URL']
bold = workbook.add_format({'bold': True})
worksheet.write_row(0, 0, head, bold)
head_offset = 1
for company_index in range(len(companies_dictionary['companies'])):
current_excel_row_number = company_index + head_offset + 1
worksheet.write(f'A{current_excel_row_number}', companies_dictionary['companies'][company_index])
worksheet.write(f'B{current_excel_row_number}', companies_dictionary['sector'][company_index])
worksheet.write(f'C{current_excel_row_number}', companies_dictionary['url'][company_index])
workbook.close()
结果:
Company Sector URL
House1 Kitchen www.house1.com
House2 Living room www.house2.com
最干净的方法可能是使用 write_column()
方法。像这样:
import xlsxwriter
workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet('To add')
companies = ['House1', 'House2']
sector = ['Kitchen', 'Living room']
url = ['http://www.house1.com', 'http://www.house2.com']
head = ['Company', 'Sector', 'URL']
bold = workbook.add_format({'bold':True})
# Make some of the columns wider for clarity.
worksheet.set_column(0, 1, 12)
worksheet.set_column(2, 2, 20)
# Write the data.
worksheet.write_row(0,0,head, bold)
worksheet.write_column(1, 0, companies)
worksheet.write_column(1, 1, sector)
worksheet.write_column(1, 2, url)
workbook.close()
输出:
请注意,我在网址中添加了 http://
,以便 XlsxWriter 将它们转换为 Excel 个链接。
要使用 XlsxWriter 写入数据,请参阅 XlsxWriter 文档的 Working with and Writing Data 部分。