iT邦幫忙

0

python openpyxl excel syntax 語法問題

  • 分享至 

  • xImage

倒數第二、三句會當機,
可是拆開來(倒數第四、五句)都是可行的。
不明白電腦為什麼會當掉(就是一執行就停住了,沒有任何output。

import openpyxl
from openpyxl.utils import get_column_letter

w1 = openpyxl.load_workbook('p310b.xlsx')
w2 = openpyxl.Workbook()
w2.create_sheet(index=0, title='First')

t1, t2 = w1['Sheet'], w2['First']

for i in range(1, t1.max_row+1):
for j in range(1, t1.max_column+1):
#print(t1[get_column_letter(j)+str(i)].value) # ok syntax
#print(t1.cell(row=i, column=j).value) # ok syntax
#t2[get_column_letter(j)+str(i)].value = t1.cell(row=i, column=j).value # crush
#t2.cell(row=i, column=j).value = t1.cell(row=i, column=j).value # crush

w2.save('p312a2.xlsx')

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2022-09-27 16:22:28
最佳解答

for i in range(1, t1.max_row+1):
    for j in range(1, t1.max_column+1):

改成

for i in range(1, 11):
    for j in range(1, 11):

執行看看

如果執行結果
1.不正確,等別的高手的答案
2.正確,那可能是 t1.max_row 和 t1.max_column 數字太大,迴圈為兩者相乘,要跑很久很久很久

謝謝樓上,我照您的方式,先把這種大數字設成變數了。(我太沒有為「電腦的算力」著想了,只想著「程式碼最簡化」XDDD。總之立刻就成功了,非常謝謝您。

我要發表回答

立即登入回答