fork download
  1. # coding: shift_jis
  2.  
  3. import glob
  4. import openpyxl as excel
  5.  
  6. class read_files():
  7. # 対象フォルダと保存先のファイル名を指定
  8. dirName = "./ExcelWorkDir/"
  9. target_dir = dirName + 'salesbooks'
  10. save_file = dirName + 'matome.xlsx'
  11. # メイン処理 --- (*1)
  12. def exe(self):
  13. # 売上一覧を書き込むブックを用意する
  14. book = excel.Workbook()
  15. main_sheet = book.active
  16. # ファイルをを列挙して読む
  17. self.enumfiles(main_sheet)
  18. # 読み込んだデータを保存
  19. book.save(self.save_file)
  20.  
  21. # ファイルを列挙する --- (*2)
  22. def enumfiles(self,main_sheet):
  23. # Excelファイルの一覧を得る --- (*3)
  24. files = glob.glob(self.target_dir + '/*.xlsx')
  25. # 各Excelブックを次々と読んでいく --- (*4)
  26. for fname in files:
  27. self.read_book(main_sheet, fname)
  28.  
  29. # ブックを開いて中身を読む --- (*5)
  30. def read_book(self,main_sheet, fname):
  31. print("read:", fname)
  32. # Excelブックを読み込む --- (*6)
  33. book = excel.load_workbook(fname, data_only=True)
  34. sheet = book.active
  35. # 売上データのある範囲を読み取る --- (*7)
  36. rows = sheet["A4":"F999"]
  37. for row in rows:
  38. # セルの値をリストとして得る --- (*8)
  39. values = [cell.value for cell in row]
  40. if values[0] is None: break
  41. print(values)
  42. # メインシートに値をコピー --- (*9)
  43. main_sheet.append(values)
  44.  
  45. # メインプログラムを実行 --- (*10)
  46. if __name__ == "__main__":
  47. exe()
  48.  
  49. # ファイル保存場所:C:\Users\PC-USER\source\repos\PythonApplication1\PythonApplication1
  50. # ファイルを保存 --- (*5)
  51. dirName = dirName + 'hello.xlsx'
  52. #book.save(dirName)
  53.  
  54.  
Runtime error #stdin #stdout #stderr 0.17s 23864KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
  File "./prog.py", line 1
SyntaxError: encoding problem: shift_jis