第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用 openpyxl 比較和修改來自不同文件的列

使用 openpyxl 比較和修改來自不同文件的列

慕仙森 2023-06-20 16:11:51
我正在編寫一個(gè)執(zhí)行以下操作的程序:1.) 從另一個(gè)腳本中讀取包含經(jīng)過處理的格式化數(shù)據(jù)的 CSV 文件2.) 將 CSV 中的數(shù)據(jù)與用于跟蹤隨時(shí)間變化趨勢的 XLSX 文件進(jìn)行比較,按工作表排序;如果 CSV 中的數(shù)據(jù)類別在 XLSX 中尚不存在,它將將該類別添加到相應(yīng)工作表的底部;然后它應(yīng)該輸入從 CSV 到 XLSX 中行末尾的相應(yīng)數(shù)值繼承人我到目前為止:import csvimport openpyxllogfile = 'logbook.xlsx'wb = openpyxl.load_workbook(logfile)with open ('working.csv', 'r') as csvfile:    infile = csv.reader(csvfile, delimiter=',')    for col in infile:        if col[1] == 'typeCol':            list = []            list.append(col[3])            ws = wb['typeCol']這將讀取所需的列并將唯一的條目類型添加到列表中。我現(xiàn)在想做的是將此列表與 logbook.xlsx 中的特定列進(jìn)行比較,但是,我似乎無法弄清楚如何讓 openpyxl 遍歷特定工作表上的特定列以進(jìn)行比較。-更新-針對(duì)回復(fù)“沒有提供足夠的信息來確定解決方案。CSV 和 Excel 工作表中有哪些列?哪個(gè)列是進(jìn)行匹配的關(guān)鍵字段?”關(guān)鍵字段是類型——它們將在 CSV 和 Excel 中完全匹配。CSV 和 excel 列都將包含字母和數(shù)字以及可能的符號(hào)的組合,所以實(shí)際上是任何東西。例子:CSV:Col1 Col2 Col3typ1 asdf 1300typ2 b14f 150typ3 a8-j 11XLSX:Col1 Col2 Col3 Col4 Col5 Col6     SEP1 col populated by corresponding #'sdate ---- JUN1 JUL1 AUG1 SEP1     from CSV abovetyp1 asdf 10   955  756  typ2 b14f 0    6191 3435 typ3 z1z9 919  0    1499 -GENERATE TYP3 FROM CSV HERE AS NEW ROW-非常感謝任何幫助!
查看完整描述

1 回答

?
躍然一笑

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊

此代碼應(yīng)該會(huì)得到您要查找的結(jié)果。它打開 csv 和 excel 文件,并根據(jù) csv 中的關(guān)鍵列更新 excel 文件。如果找不到匹配的鍵列,它會(huì)附加一行。


# Create CSV for test

cdata = '''

Col1 Col2 Col3

typ1 asdf 1300

typ2 b14f 150

typ3 a8-j 11

'''.strip()


with open ('working.csv', 'w') as csvfile:

    csvfile.write(cdata)



###################### Main Script ##########################


import csv

import openpyxl


logfile = 'logbook.xlsx'

wb = openpyxl.load_workbook(logfile)

ws = wb.worksheets[0]


curcol = 6  # SEP1


with open ('working.csv', 'r') as csvfile:

    infile = csv.reader(csvfile, delimiter=' ')

    for i, row in enumerate(infile):

       if i==0: continue  # skip headers

       for xr in range(3, ws.max_row+1):  # check excel sheet

          if ws.cell(xr,1).value == row[0] and ws.cell(xr,2).value == row[1]: # key columns match

              ws.cell(xr,curcol).value = float(row[2])  # copy csv value

              break  # found entry

       else: # did not find entry, must add row

          ws.cell(xr+1, 1).value = row[0]

          ws.cell(xr+1, 2).value = row[1]

          ws.cell(xr+1, curcol).value = float(row[2])

          

wb.save('logbookNew.xlsx')  

http://img1.sycdn.imooc.com//64915f650001ffbb03460098.jpg

http://img1.sycdn.imooc.com//64915f7200017b1103480120.jpg


查看完整回答
反對(duì) 回復(fù) 2023-06-20
  • 1 回答
  • 0 關(guān)注
  • 179 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)