首页 > 解决方案 > 如何使用 xlsxwriter 将我的数据表逐行写入 Excel

问题描述

我再次在 xlsxwriter 中迭代行时遇到问题。我尝试了很多组合但失败了。您的帮助将不胜感激!我的代码;

file = open("namelist.txt","r")
data = []

for d in file:
    url = "file:///C:/Users/k/Desktop/HTML/"
    t = (url) + d
    data.append(t.strip())
file.close()

# data variable becomes --> ['file:///C:/Users/k/Desktop/HTML/new01.html', 'file:///C:/Users/k/Desktop/HTML/new02.html', 
# 'file:///C:/Users/k/Desktop/HTML/new03.html', 'file:///C:/Users/k/Desktop/HTML/new04.html']

workbook = xlsxwriter.Workbook("namelist.xlsx")
worksheet = workbook.add_worksheet("Name list")

# this peace of code writes header
for headers in data:
    b = data[0]
    browser.get(b)
    header = browser.find_elements_by_xpath("/html/body/table/tbody/tr[1]/th")
    head = []
    for h in header:
        head.append(h.text)
        worksheet.write_row("A1", head)

print ("Headers written to namelist.xlsx succesfully!")
print ("Given Name list being written to namelist.xlsx...")

# this part of the core overrites the tables to excel file
for i in data:
    browser.get(i)
    trs = browser.find_elements_by_xpath("/html/body/table/tbody/tr")
    for n, tr in enumerate(trs):
        row=[td.text for td in tr.find_elements_by_tag_name("td")]
        print (row)
        worksheet.write_row("A{}".format(1+n), row)
print ("namelist.xlsx is ready!")
workbook.close()

data[ ] 中的每个链接都包含具有相同格式的不同数据的表。像下面这样

在此处输入图像描述

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

我的代码中的 For 循环覆盖了行,所以我只能在 Excel 中看到上面的表格之一 在此处输入图像描述

但是我需要通过迭代所有链接并像这样逐行编写它们来编写它们; 在此处输入图像描述

提前谢谢了!

标签: pythonseleniumfor-loopxlsxwriter

解决方案


显然你在最后一个循环中有 1,2,3... 值,n用 int 创建一些变量并在循环中递增它,如:

line = 1
for tr in trs:
    row=[td.text for td in tr.find_elements_by_tag_name("td")]
    print (row)
    worksheet.write_row("A{}".format(line + 1), row)
    line += 1

推荐阅读