您的位置:首頁技術文章
文章詳情頁

python - 使用xlsxwriter寫入Excel, 只能寫入65536 無法繼續寫入.

瀏覽:119日期:2022-08-19 17:13:21

問題描述

使用Python+xlsxwriter處理爬蟲數據,寫入到excel

代碼可以讀取到全部數據,有9W行,但是寫入文件,只能寫入65536行

打開文件使用的是mac的numbers,不是office.

有朋友碰到過這個情況嗎?幫忙看看.謝謝!

workbook = Workbook(’albumsound.xlsx’) 1 2 try: 3 f = workbook#創建工作簿 4 sheet1 = f.add_worksheet(u’專輯’)#創建sheet 5 headings = [u’專輯名稱’, u’專輯類型’, u’作者’, u’播放量’, u’上線時間’, u’更新時間’, u’單集數量’] 6 sheet1.write_row(’A1’, headings) 7 #for x in range(0, len(row0)): 8 # sheet1.write(0, x, row0[x], set_style(’Times New Roman’, 220, True)) 9 10 #sheet2 = f.add_worksheet(u’專輯’) 11 #headings = [u’專輯名稱’, u’專輯類型’, u’專輯作者’, u’專輯上線時間’, u’專輯更新時間’, u’專輯播放量’, u’單集數量’, u’專輯鏈接’] 12 #sheet2.write_row(’A1’, headings, bold) 13 # 生成第一行 14 #for i in range(0, len(row0)): 15 # sheet2.write(0, i, row0[i], set_style(’Times New Roman’, 220, True)) 16 17 except Exception as e: 18 pass 19 20 con = mdb.connect(’localhost’, ’root’, ’ubuntu’, ’xmlyalbumdata’, charset=’utf8’) 21 cur = con.cursor() 22 cur.execute('SET NAMES utf8') 23 24 time1 = datetime.now().strftime(’%Y%m%d’) 25 tabname = ’albumsound_’ + time1 26 27 sql = '''select * from {}'''.format(tabname) 28 excel = cur.execute(sql) 29 datas = cur.fetchall() 30 i = 1 31 for data in datas: 32 sheet1.write(i, 0, data[1]) 33 sheet1.write(i, 1, data[2]) 34 sheet1.write(i, 2, data[3]) 35 sheet1.write(i, 3, data[4]) 36 sheet1.write(i, 4, data[5]) 37 sheet1.write(i, 5, data[6]) 38 sheet1.write(i, 6, data[7]) 39 i += 1 ### 這里的i最后輸出9w行數據 40 # print i 41 42 f.close()

問題解答

回答1:

Excel2003版的是65536行,2007版和2010版的是1048576行

回答2:

要不要先試一試每輸出65536行換一個文件,或者把文件關閉后重新打開追加寫入。

回答3:

一樓的老兄已經給出了正確答案,看你的后綴是xlsx,其實數據已經寫進去了,你是不是打開的時候用的excel2003,你應該換成2007以上的excel打開看看

標簽: python
国产综合久久一区二区三区