如何在Openpyxl中循环写入数据?

时间:2017-12-12 17:47:54

标签: python-3.x openpyxl

我正在创建一个portscanner(通过Python),每当我收到一些内容时,都应该用.XLSV文件编写。

它应该做什么:

  1. Webscanner发现端口21打开
  2. 接收数据
  3. 将其写入第2行的.XLSV文件
  4. Webscanner找到端口80打开
  5. 接收数据
  6. 将其写入第3行的.XLSV文件
  7. 我的代码:

    wb = load_workbook('scanreport.xlsx')
    
    hitdetails = (str(hostname), str(host), str(port), str(keyword), str(banner))
    wb = Workbook()
    ws = wb.active
    start_row = 1
    start_column = 1
    
    for searchresult in hitdetails:
        ws.cell(row=start_row, column=start_column).value = searchresult
        start_column += 1
    start_row += 1
    
    wb.save("scanreport.xlsx")
    

    结果: Only writes last result 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

@skjoshi,你先生刚刚用覆盖修复了我的问题:

write into excel file without overwriting old content with openpyxl(本页)

因为我已经在使用现有工作表加载现有文件,所以我还创建了一个新工作表,它将覆盖每次丢失数据的旧工作表。

在这种情况下,我删除了ws = wb.active并且它有效!