pywin32 copy excel sheet阻點經驗

     在工作中遇到一些重複的excel操作,例如,檢查excel中的填報情況和生成下一次的填報新模板excel。

    每週重複這樣操作的時間,總想着有沒有可以自動化的辦法可以搞定,畢竟程序員厭惡重複嘛!

    這段在幫助一位同事用python搭建一個web服務後,就非常饒有興趣地決定用python膠水語言試試,以方便工作。

    因爲檢查和拷貝excel的重複工作,是與windows環境綁定比較緊密的,所以,就不用太關心跨平臺的問題。可以利用python os.popen操作windows命令行命令,以及使用pywin32的組件模塊完成這個操作。

  pywin32 訪問excel的方法,在網上也有不少例子。參考一下,非常平滑地完成前面檢查的動作。但是,在複製sheet頁時,網上的sheet.Copy(NONE,afterSheet)的語法,並不能工作的很好,就遇到了阻點。

    後來,查閱網上資料,瞭解到pywin32是藉助win32 COM組件進行工作的,而且控制檯上打印的異常堆棧也是說明這樣一點。而且也提到,pywin32操作excel的接口與VBA 操作excel的接口類似。所以,就從搜索VBA開始,最後也很有幸地在MSDN上查到這些接口說明。

   在MSDN 研究一通,發現對於excel sheet Copy動作,它的參數其實就是所要Before和After的sheet,而且參數可選。所以,網上pywin32例子中傳入copy動作的第一個參數使用None有點繞了。

   因爲excel copy sheet到某個sheet頁之前後之後,其實就是一個獲取不同sheet,然後作爲第一個參數傳入即可,完全可以繞過對於NONE的使用。

  有時有些問題,一直搞不一定時,退下來想想、分析分析,或就有辦法了:)

  現在又加上PowerCmd這個軟件來方便windows 命令行輸入,工作變得會更便捷了,哈哈

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章