アプリの教科書

アプリ・ウィンドウズで困ったことを調べたブログ

ウィンドウズ10やアプリで困ったことを調べたブログです。

スポンサーリンク


【Visual Studio】Pythonでエクセルの読み書き

Pythonからエクセルのファイルのデータの読み込み、書き込みも可能です。

これならPythonのほうで処理を書いて実行できるので、処理内容によってはVBマクロを書くよりも楽になるでしょう。

Pythonでエクセルファイル

ExCeL

準備

pandas」というモジュールを使うとかなり簡単にエクセルファイルを利用できます。

pip install pandas」で先にインストールしておきましょう。

Visual Studioでのpipインストール方法は以下参照ください。

【Visual Studio 2019】Pythonの始め方 インストールは?PIPは? - 困ったー

 

エクセルファイルを読む

ファイル名、シート名を指定してみると、

import pandas as pd
myfile = "sample.xlsx"

 

try:
  mysheet= pd.read_excel(myfile,sheet_name="Sheet1")
  print(mysheet)
except Exception as e:
  print(e)

 

こちらは元ファイル。

f:id:apicode:20201205173003p:plain

 

こちらは出力。日本語が文字化けということもありません。

f:id:apicode:20201205173006p:plain

 

取得したデータはデータフレームと呼ばれる形式になります。info関数で詳細を確認することができます。

myfile = "sample.xlsx"

mysheet= pd.read_excel(myfile,sheet_name="Sheet1")

mysheet.info()

 

f:id:apicode:20201205173526p:plain

 

読み込みではいろいろと設定を変更できるので、詳細は以下参照ください。

pandas.read_excel — pandas 1.1.4 documentation

 

セル情報の取得

セルをピンポイントで取得するには配列から情報を取得できます。

read_excelで取得したオブジェクトの「values」プロパティを2次元配列として指定します。

print(mysheet.values[0][0])

print(mysheet.values[0][1]) 

 

また、取得したデータはDataFrameという形式のため、以下のような関数でセルの値を取得することもできます。

print(mysheet.iloc[0,1])

 

ただDataFrame形式は自動的に1行目をインデックスにしたりしているっぽいのでもうちょっと調査が必要です。

 

セル情報の変更

pandasを利用すると楽になる部分がある一方、面倒なところもありました。

取得したデータはDataFrameという特殊なつくりになっており、単純に取得したシートの配列を変更するだけではだめでした。

 

いろいろためしたところ「iloc」というメソッドを使って変更できました。

mysheet.iloc[0,1] = "110"

 

エクセルファイルの保存

to_excel(ファイル名、シート名)」でファイルに保存できます。

 

try:
  mysheet.to_excel("sample2.xlsx","Sheet1")
except Exception as e:
  print(e) 

 

ただ、うちで実行するとなぜか頭に不要な1列が追加されていました。

f:id:apicode:20201207102446p:plain

 

対策としては「index=False」として「indexは不要です」というパラメータを追加したら大丈夫でした。

mysheet.to_excel("sample2.xlsx","Sheet1",index=False)

 

 

CSVファイルの保存

to_csv(ファイル名)」でファイルに保存できます。

try:
  mysheet.to_csv("sample2.csv")
except Exception as e:
  print(e) 

 

 

エラーの場合

xlwt, openpyxlがない!

ファイルの書き出しでは、

「xls」形式の場合は「xlwt」がない!とエラーになりました。

「xlsx」の場合は「openpyxl」がない!とエラーになりました。

それぞれ「pip install xlwt」「pip install openpyxl」でインストールできます。

 

Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd.

また、うちで実行したら次のようなエラーが出ました。

「Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd.」

エラーが出る場合の対策として「pip install xlrd」を実行しておきましょう。

 

list.remove(x): x not in list

リストに該当が見つからなかった場合のエラー。

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

利用規約・プライバシーポリシー |〇問い合わせ