簡體   English   中英

Openpyxl - 將數據從 Excel 工作簿附加到另一個

[英]Openpyxl - Appending data from an Excel workbook to another

我想在 Workbook 2 中的現有數據之后從 Workbook 1 和 append 中獲取特定行。

到目前為止我嘗試過的代碼可以在下面找到:

import openpyxl as xl
from openpyxl.utils import range_boundaries
min_cols, min_rows, max_cols, max_rows = range_boundaries('A:GH')

#Take source file
source = r"C:\Users\Desktop\Python project\Workbook1.xlsx"
wb1 = xl.load_workbook(source)
ws1 = wb1["P2"] #get the needed sheet


#Take destination file
destination = r"C:\Users\Desktop\Python project\Workbook2.xlsx"
wb2 = xl.load_workbook(destination)
ws2 = wb2["A3"] #get the needed sheet


row_data = 0

#Get row & col position and store it in row_data & col_data
for row in ws1.iter_rows():
    for cell in row:
        if cell.value == "Positive":
            row_data += cell.row


for row in ws1.iter_rows(min_row=row_data, min_col = 1, max_col=250, max_row = row_data):
    ws2.append((cell.value for cell in row[min_cols:max_cols]))  


wb2.save(destination)
wb2.close()

但是當我使用上面提到的代碼時,我得到了結果,但移位了 1 行。 我希望附加到第 8 行的數據位於第 7 行,緊隨工作簿 2 中的最后一個數據之后。(見下圖)

工作簿 2

有沒有人有任何反饋? 謝謝!

我找到了解決方案並將其發布在這里,以防有人遇到同樣的問題。 盡管下面的單元格看起來是空的,但它們的格式顯然很奇怪。 這就是為什么 Python 腳本將單元格視為非空並將數據附加/移動到另一個地方(沒有格式化的地方)的原因。

解決方案是將數據下方的每一行格式化為空單元格。 (只需從新工作簿中復制一系列空單元格並將其粘貼到您的數據下方)

希望有幫助; ;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM