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