1. 程式人生 > >python 利用 xdrlib 操作追加excel一種思路

python 利用 xdrlib 操作追加excel一種思路

今天在做一個專案,需要用到將網頁上爬取的資料整理出來並存入excel檔案中,剛開始使用的是xlwt控制元件來做,但是發現每次迴圈寫入excel後,檔案原來的內容都會被覆蓋,後來網上搜集資料 使用  xdrlib 來做,但xdrlib 只能追加一次,它是利用一種複製檔案的思路來做的,當迴圈追加excel的時候檔案原來的內容還是會被覆蓋(這個應該很好理解)。左思右想以後覺得得用檔案的刪除和重新命名來做:

注意:其實xdrlib 的思路就是用一箇中間檔案(data.out.xls)來實現內容追加的,原來的檔案叫(data.xls),因為你最初的思路是想往data.xls檔案中追加新的額內容,但是每次追加就會覆蓋原來的內容,使用xdrlib 後可以追加一次,那麼這時候你就可以將原來的data.xls檔案刪除,然後將data.out.xls檔案重新命名成data.xls。這樣就相當於每次都是對已經追加了內容的檔案再次追加新的內容,親測可行。下面是我的程式碼

def zhuijia(row,col,values,file_name='data.xls'):
    r_xls = ExcelRead.open_workbook(file_name) 
    r_sheet = r_xls.sheet_by_index(0) 
    rows = r_sheet.nrows 
    w_xls = copy(r_xls) 
    sheet_write = w_xls.get_sheet(0) 
    sheet_write.write(row,col,values)  
    w_xls.save(file_name + '.out' + os.path.splitext(file_name)[-1]); 
    try:
        os.remove('data.xls')
        os.rename('data.xls.out.xls', 'data.xls')
    except WindowsError:
        pass

哈哈,大神門如果覺得這種方式太笨,請見諒,