python - 如何用openpyxl在现有的excel文件中写入数据
PHP中文网
PHP中文网 2017-04-18 10:28:17
0
2
1135

openpyxl文档里面有介绍把数据写入单个单元格,和逐行写入数据。但是没有介绍怎么批量把数据写入指定的行或列。想请大神指点一下。

比如我想在第二行这里批量写入10行新的数据(格式和原表格一样),原有的数据往后面排,或者D列写入一列数据。

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(2)
伊谢尔伦

pandas讀到dataframe裡面,再改dataframe,寫入到excel中,程式碼最簡單

PHPzhong

樓上的方法挺好,就是安裝pandas比較麻煩,新手可能不太好搞定,我倒是有個笨方法

from win32com.client import Dispatch    
import win32com.client

class MyExcel:
    def __init__(self, filename=None):  # 打开文件或者新建文件(如果不存在的话)
        self.xlApp = win32com.client.Dispatch('Excel.Application')
        if filename:
            self.filename = filename
            self.xlBook = self.xlApp.Workbooks.Open(filename)
        else:
            self.xlBook = self.xlApp.Workbooks.Add()
            self.filename = ''

    def save(self, newfilename=None):  # 保存文件
        if newfilename:
            self.filename = newfilename
            self.xlBook.SaveAs(newfilename)
        else:
            self.xlBook.Save()

    def close(self):  # 关闭文件
        self.xlBook.Close(SaveChanges=0)
        del self.xlApp

    def inserRow(self, sheetname, row):
        sht = self.xlBook.Worksheets(sheetname)
        sht.Rows(row).Insert()

if __name__ == "__main__":
      xls = MyExcel(r'd:\jason.li\Desktop\empty_book.xlsx')
      xls.inserRow('sheet1',6)
      xls.save()
      xls.close()

如果嫌麻煩,可以使用繼承,重寫類別的方法。我就提供一個實現的小思路,效率比較低,也可以修改一下程式碼,一次插入多行,用win32com操作Excel很方便,怎麼需要怎麼寫。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板