2016-10-04 39 views
0

我有一個額外的大小的Excel文件,我需要自動化我每天做的任務:添加行到底部與當天的日期,保存一個新的工作簿,裁剪舊的和保存爲一個包含當天日期的新文件。Python腳本來解析一個大的工作簿

今天的例子只有行日期04-10-2016,如果它已經過了12點,文件名將是[sheetname]04102016H12[sheetname]04102016H16

我試過xldr,在VBA中這樣做,但是我無法與VBA相處,而且速度很慢。所以我寧願在這裏使用Python--輕量級,做這項工作等等。

總之,到目前爲止,我已經做了follwing:

import xlsxwriter, datetime, xlrd 
import pandas as pd 

# Parsing main excel sheet to save the correct 

with xlrd.open_workbook(r'D:/path/to/file/file.xlsx', on_demand=True) as xls: 
    for sheet in xls.parse(xls.sheet_names([0])): 
     dfs = pd.read_excel(xls, sheet, header = 1) 
     now = datetime.date.today() 
     df[df['Data'] != now] 
     if datetime.time()<datetime.time(11,0,0,0): 
      df.to_excel(r'W:\path\I\need'+str(sheet)+now+'H12.xlsx', index=False) 
     else: 
      df.to_excel(r'W:\path\I\need'+str(sheet)+now+'H16.xlsx', index=False) 

不幸的是,這並不主文件到儘可能多的文件,工作表的工作簿包含分離。它輸出TypeError: 'list' object is not callable,關於這個in xls.parse(xls.sheet_names([0]))

回答

0

根據下面的評論我正在更新我的答案。只要做到:

xls.sheet_names()[0] 

但是,如果你想通過表圈,那麼你可能希望所有表名稱,而不只是第一個。

+0

現在說'AttributeError:'Book'對象沒有屬性'parse_''。 –

+0

我的部分錯別字。但是你可以通過自己調試錯誤學到很多東西。 – aberger

+0

仍然會給出相同的錯誤,因爲解析沒有屬性。這個命令應該給出這個工作簿中的所有表單,但是由於某些原因不會發生。 –

相關問題