[英]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 中的最后一個數據之后。(見下圖)
有沒有人有任何反饋? 謝謝!
我找到了解決方案並將其發布在這里,以防有人遇到同樣的問題。 盡管下面的單元格看起來是空的,但它們的格式顯然很奇怪。 這就是為什么 Python 腳本將單元格視為非空並將數據附加/移動到另一個地方(沒有格式化的地方)的原因。
解決方案是將數據下方的每一行格式化為空單元格。 (只需從新工作簿中復制一系列空單元格並將其粘貼到您的數據下方)
希望有幫助; ;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.