PythonでExcelを使う



趣旨

  • ExcelとPythonをシームレスにつなげて使いたいなあと思っていた、ところ
  • なんだか使えそうなのでモジュールをインストールしたりしてみた
  • 結論。できた。
    • Excel2007で使えるか試してみたけど今のところ使えそう(workbookをつくって値をいれるところまでは実行出来た)


モジュールのインストール

  • pywin32のインストール
  • Pyvotのインストール
    • ダウンロードサイト: http://pypi.python.org/pypi/Pyvot
    • easy_installでいれる場合もソースはダウンロードすること
    • ソースから入れる場合、docutilsがいると言われることがある
    • easy_installでもインストールできる
      • easy_installのインストール
        • まずsetuptoolsをインストールします
        • ダウンロードサイト: http://pypi.python.org/pypi/setuptools
        • python27/Scripts/の中にeasy_install.exeがあるので、こいつにPATHを通す
          • 環境変数に C:\Python27\Scripts;を追加
          • すると今度からコマンドラインでeasy_installといれると実行出来るようになる
      • ダウンロードしたディレクトリで
        • easy_install Pyvot-0.1.2-py2.7.egg
        • のように実行するとインストールされる
    • その後、あるファイルをコピーする
      • Pyvotを解凍したディレクトリに xl というディレクトリがある
      • このxlを  C:\Python27\Lib\ にコピー



モジュールの実行確認



モジュールの利用

  • 最初にimport xlとする
  • x = xl.Workbook()
    • こうすると新しくBook1.xls等の新規excelが作られる
  • x = xl.Workbook('path')
    • pathを指定すると所定の.xlsや.xlsxを読み込める
    • xl.Workbook() だと全体。xl.Workbook()[1]だとB列を読む
  • x.view(list)
    • Excelのシートにlistを追加
      • listは文字列は使えない模様
    • 繰り返し使うとA列、B列、C列と隣の列に表示が移動していく
  • x.get()
    • get()の中にいれられるのは
      • "A1" A1のパス
      • "A1:B4" A1:B4の多重配列のパス
    • データの取得
      • x.get("A1").get()
      • これで取得できる
      • 単独なら値、範囲ならリスト
  • x.selected_range()
    • 選択範囲のパスを取得
    • x.selected_range().get()で選択範囲の値を取得
  • ワークシートの指定
    • どうもできないみたい。active worksheetを自動的に使用する模様



Comments