質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

2回答

398閲覧

参照ファイルを利用するためのコード

pa_TKY

総合スコア13

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

1クリップ

投稿2018/09/27 02:20

編集2018/09/28 00:32

前提・実現したいこと

最近pythonを学び始めた超初心者です。
最終的にエクセルの操作や計算用のデスクトップアプリを作ろうと思っています。

現状、ファイル参照のためのコードやGUIのデザイン部分は書けているのですが、
肝心の参照したファイルを利用するところが調べてもなかなか出てこず、
どういったコードが良いのかわからずに止まっています。

皆様のお力をお貸しいただけますでしょうか。

詳細内容

下記コードをボタンに付与してファイル選択を行っています。
fTyp = [("","*")]
iDir = os.path.abspath(os.path.dirname(file))
filepath = filedialog.askopenfilename(filetypes = fTyp,initialdir = iDir)
file1.set(filepath)

ここで手に入れたファイルを使って以降の作業を行いたいのですが、どのように繋げればよいでしょうか?
具体的には別のボタンに対して、上記コードで参照したエクセルファイルを利用して、
・セル情報の読み取り、書き出し
・数値の計算
を行いたいと思っています。

補足情報(ツールのバージョンなど)

開発ツールはVisual Studio 2017 (ver 15.8.3)
環境はPython 3.6 (64bit)
を使用しています。

追記(9月28日)

現状、Excelファイルのpythonでの使用のためにopenpyxl,pandasなどのモジュールが必要であることは調べてわかっており、インストールも行っています。
行いたいことの詳細ですが、
1.ファイルの選択(これは現在上記コードを使っています)
2. 1で選択したファイルの読み込み
3. 2のファイルのシート名またはあるセルの名前を別表に書き出し(Excelでなくてもよい)
4. 3の表に書き込み
5. 2と3を連動させて計算、計算結果の書き出し
となっています。

1を行う理由は、アプリとしての幅を持たせるためですが、
2の選択したファイルの読み込みで躓いているため、それ以降に進めない状況になっています。
選択したファイルを読み込むためにはどのようなコードがひつようでしょうか?

他に必要な情報があればお聞きください。
お手数おかけしますが、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Python からの Excel 操作は openpyxl を使うとできます。

インストール

pip install openpyxl

ドキュメント

openpyxl

データ

Sheet1 の A ~ C 列に以下の値を記載

excel

1data1 dat2 data3 21 1 1 32 2 2 43 3 3 54 4 4 65 5 5 76 6 6 87 7 7 98 8 8 109 9 9 1110 10 10 12

コード

python

1import openpyxl as xl 2 3xlsx_path = 'test.xlsx' 4 5# Excel ファイルを読み込む。 6wb = xl.load_workbook(xlsx_path, data_only=True) 7ws = wb.active 8 9# C列を読み込み 10for cell in ws['C']: 11 print(cell.value, end=" ") 12 # data3 1 2 3 4 5 6 7 8 9 10 13print(ws['A1'].value) # 12 14 15# セル A1 に 14 を書き込む。 16ws['A1'] = '14' 17 18# 保存する。 19wb.save(xlsx_path)

投稿2018/09/27 11:05

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pa_TKY

2018/09/28 00:32

言葉足らずになっており、ご迷惑をおかけしました。 追記情報を記載しておりますので、そちらも一度ご確認いただけますと幸いです。
tiitoi

2018/09/28 02:05

「指定したファイルパスからエクセルファイルから読み込み」 ~ 「エクセルファイルとして書き出し」は上記のコードでできていると思いますが、なにか不足していることがありますでしょうか?GUI の選択ダイアログで得られた filepath を openpyxl.load_workbook() に渡して読み込めば、あとは Excel の操作は openpyxl で完結します。
pa_TKY

2018/10/02 00:15

ご返信ありがとうございます。 その場合、openpyxl.load_workbook(filepath)で読み込む形になるのでしょうか? 後の作業に関してもご指導ありがとうございます。 試してみます。
tiitoi

2018/10/02 02:10

はい、そのような流れになります。
pa_TKY

2018/10/04 01:54

ありがとうございます。 解決できそうです。
guest

0

なぜ、わざわざ(VBAでなく)PythonでExcelファイルを取り扱おうとされているのか等、気になるところもあります。が、それはさておき。

サードパーティ製のツールを別途導入してください。
Python単体+標準ライブラリで、直接Excelファイルを扱う方法はありません。
(バイナリを扱えるとか、内部構造の知識があれば力業もききますが)

肝心の参照したファイルを利用するところが調べてもなかなか出てこず、

下記のページはご覧になりましたか。
https://news.mynavi.jp/article/zeropython-36/

投稿2018/09/27 11:00

morinatsu

総合スコア395

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pa_TKY

2018/09/28 00:36

ご指定ページは初めて見ましたが、モジュールを導入することは別のページで見ていました。 他の方にも指摘いただいていましたので、情報を追記いたしました。 そちらを一度ご確認いただけますと幸いです。 お手数ですがよろしくお願いします。
morinatsu

2018/09/28 10:50

> モジュールを導入することは別のページで見ていました。 モジュールの導入が必要なことをご理解されているのに、なぜそれがコードの中で表現されていないのでしょうか。また、質問のコードをご自分で実行してみていますか?
pa_TKY

2018/10/02 00:17

私の言葉足らずで誤解を招いてしまったようで申し訳ありません。 エクセルの操作について問題があるわけではなく、 上記コードで得られたファイルパスを次につなげる際の記載方法がわからなかったという状態でした。 様々試して解決できるようにしてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問