
read_files.pyで複数メソッドを定義して
exeメソッドから他のメソッドを利用したいのですが
他のメソッドが定義されていませんというエラーが出てしまいます
解決方法を教えてください。
************************PythonAplication1.py********************
import read_files
r = read_files
r.read_files.exe()
************************read_files.py********************
# coding: shift_jis
import glob
import openpyxl as excel
class read_files:
# 対象フォルダと保存先のファイル名を指定
dirName = "./ExcelWorkDir/"
target_dir = dirName + 'salesbooks'
save_file = dirName + 'matome.xlsx'
# メイン処理 --- (*1)
def exe():
# 売上一覧を書き込むブックを用意する
book = excel.Workbook()
main_sheet = book.active
# ファイルをを列挙して読む
enumfiles(main_sheet)
# 読み込んだデータを保存
book.save(save_file)
# ファイルを列挙する --- (*2)
def enumfiles(main_sheet):
# Excelファイルの一覧を得る --- (*3)
files = glob.glob(target_dir + '/*.xlsx')
# 各Excelブックを次々と読んでいく --- (*4)
for fname in files:
read_book(main_sheet, fname)
# ブックを開いて中身を読む --- (*5)
def read_book(main_sheet, fname):
print("read:", fname)
# Excelブックを読み込む --- (*6)
book = excel.load_workbook(fname, data_only=True)
sheet = book.active
# 売上データのある範囲を読み取る --- (*7)
rows = sheet["A4":"F999"]
for row in rows:
# セルの値をリストとして得る --- (*8)
values = [cell.value for cell in row]
if values[0] is None: break
print(values)
# メインシートに値をコピー --- (*9)
main_sheet.append(values)
# メインプログラムを実行 --- (*10)
if __name__ == "__main__":
exe()
# ファイル保存場所:C:\Users\PC-USER\source\repos\PythonApplication1\PythonApplication1
# ファイルを保存 --- (*5)
dirName = dirName + 'hello.xlsx'
book.save(dirName)
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
read_files.pyをモジュールとして登録した場合です。
Application.py
----------------------------
import read_files
read_files.exe()
-----------------------------
read_files.pyは下記URLへアップしました。
https://ideone.com/w6GKR1
No.1
- 回答日時:
read_filesはクラスではなく、モジュールとして登録したほうが、良いかと
思いますが、とりあえずクラスとして実装してみました。
PythonAplication1.py
------------------------------------
import read_files
r = read_files.read_files()
r.exe()
------------------------------------
read_files.pyはインデントが崩れるので、下記URLにアップしました。
https://ideone.com/giQaZp
尚、最下行にbook.save(dirName)がありますが、この行があるとエラーになるため、これはコメントにしてあります。(なにをなさりたいのかがよくわからない為エラーをとることはしていません)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】AブックからBブック...
-
VBAで別のブックにシートをコピ...
-
VBA シートをコピーする際に Co...
-
【ExcelVBA】インデックスが有...
-
Excel UserForm の表示位置
-
エクセルでシートを保護すると...
-
罫線の斜線を自動で引くマクロ
-
あああ..ああい..ああう とい...
-
「段」と「行」の違いがよくわ...
-
Excel VBAでのWorksheet_Change...
-
EXCELのダイアログシートって、...
-
DataGridViewでグリッド内に線...
-
Excelのフィルター後の一番上の...
-
vba マージエリアの行数を非表...
-
【エクセル】フリーワード検索...
-
マクロの相対セル参照記録って?
-
エクセルファイルを開いた回数...
-
ListViewで列を指定して表示さ...
-
アクティブになっている行をマ...
-
【マクロ】実行時エラー '424':...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
別ブックをダイアログボックス...
-
VBAで別のブックにシートをコピ...
-
ワイルドカード「*」を使うとう...
-
VBA コードを実行すると画面が...
-
VBA 実行時エラー 2147024893
-
[Excel]ADODBでNull変換されて...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】インデックスが有...
-
【ExcelVBA】zip圧縮されたCSV...
-
Excelマクロ 該当する値の行番...
-
【Excel VBA】書き込み先ブック...
-
【VBA】全シートの計算式を全て...
-
Excelファイルを開くとき、読み...
-
Excel2007VBAファイルの表示に...
-
VBAで複数のブックを開かずに処...
-
フォルダ内の全てのファイルに...
-
オブジェクトは、このプロパテ...
おすすめ情報