python
murata private 複数エクセルファイル内ã®å€¤ã‚’ã¾ã¨ã‚ã¦ï¼‘ã¤ã®CSVファイルã«å‡ºåŠ›ã™ã‚‹
import pathlib # 標準ライブラリ
import openpyxl # 外部ライブラリ pip install openpyxl
import csv # 標準ライブラリ
# ワークブックを作æˆ
new_workbook = openpyxl.Workbook()
# デフォルトã§ä½œæˆã•ã‚Œã‚‹ãƒ¯ãƒ¼ã‚¯ã‚·ãƒ¼ãƒˆã‚’é¸æŠž
new_sheet = new_workbook.active
new_row = 1
# ..\ → ã“ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã®è¦ªãƒ•ォルダを示ã™ã€‚(.\ã ã‘ã ã¨ã‚«ãƒ¬ãƒ³ãƒˆãƒ•ォルダを示ã™ã€‚)
path = pathlib.Path("..\data\targetfolder") #相対パス指定
# path.iterdir() → ディレクトリ内ã®ãƒ•ァイル・サブディレクトリ一覧をå–å¾—
for all_obj in path.iterdir():
# æ‹¡å¼µåãŒxlsxã‹ã‚’判定
if all_obj.match("*.xlsx"):
# ワークブックã®èªã¿è¾¼ã¿ã€€ã€€//最åˆã‹ã‚‰globを使用ã™ã‚Œã°ã„ã„ã®ã§ã¯ï¼Ÿ
wb = openpyxl.load_workbook(all_obj)
# ワークブックã‹ã‚‰ã‚·ãƒ¼ãƒˆã‚’é †ã«èªã¿è¾¼ã¿
for target_sheet in wb:
#シートã®9行目ã‹ã‚‰18行目ã¾ã§ã‚’æ“作ã™ã‚‹ã‚ˆã†ã«æŒ‡ç¤º //xlupã®ã‚ˆã†ã«å§‹ã¾ã‚Šã¨çµ‚ã‚りãŒåˆ†ã‹ã‚‰ãªã„å ´åˆã«å¯¾å¿œã•ã›ã‚‹ã«ã¯ï¼Ÿ
for target_row in range(9,19):
# 対象行ã®2番目ã®åˆ—ã«ã€ãƒ‡ãƒ¼ã‚¿ãŒå…¥åŠ›ã•れã„ã‚‹ã‹ã‚’調ã¹ã‚‹ã€‚
if target_sheet.cell(target_row, 2).value != None:
#より説明的ãªã‚³ãƒ¼ãƒ‰
#new_sheet.cell(row=new_row, column=1).value = \
# target_sheet.cell(row=2, column=7).value #ä¼ç¥¨NO
#対象ファイルã®2行目7列目をã€ä½œæˆã—ãŸã‚·ãƒ¼ãƒˆã®å¯¾è±¡è¡Œã®list_row行目ã®1列目ã«è»¢è¨˜
new_sheet.cell(new_row, 1).value = target_sheet.cell(2, 7).value #ä¼ç¥¨NO
# ä»¥ä¸‹åŒæ§˜ã®è€ƒãˆ
new_sheet.cell(new_row, 2).value = target_sheet.cell(3, 7).value #日付
new_sheet.cell(new_row, 3).value = target_sheet.cell(4, 3).value #å¾—æ„先コード
new_sheet.cell(new_row, 4).value = target_sheet.cell(7, 8).value #担当者コード
#対象ファイルã®dt_row行目ã®1列目をã€ä½œæˆã—ãŸã‚·ãƒ¼ãƒˆã®list_row行目ã®1列目ã«è»¢è¨˜
new_sheet.cell(new_row, 5).value = target_sheet.cell(target_row, 1).value #No
#ä»¥ä¸‹åŒæ§˜
new_sheet.cell(new_row, 6).value = target_sheet.cell(target_row, 2).value #商å“コード
new_sheet.cell(new_row, 7).value = target_sheet.cell(target_row, 3).value #商å“å
new_sheet.cell(new_row, 8).value = target_sheet.cell(target_row, 4).value #æ•°é‡
new_sheet.cell(new_row, 9).value = target_sheet.cell(target_row, 5).value #å˜ä¾¡
# 「\〠→ 行継続ã®è¨˜å·
# 対象ファイルã®dt_row行目ã®4列目ã¨5列目ã®ç©ã‚’ã€ä½œæˆã—ãŸã‚·ãƒ¼ãƒˆã®list_row行目ã®ï¼‘ï¼åˆ—ç›®ã«è»¢è¨˜
new_sheet.cell(new_row, 10).value = target_sheet.cell(target_row, 4).value * \
target_sheet.cell(target_row, 5).value #金é¡
new_sheet.cell(new_row, 11).value = target_sheet.cell(target_row, 7).value #備考
# æ–°ã—ã„データ下ã«è¿½åŠ ã§ãるよã†ã«ã€list_rowã«1ã‚’åŠ ç®—
new_row += 1
#new_workbook.save("..\data\sales\salesList.xlsx")
# ファイルã®ä¿å˜
# 引数ã¨ã—ã¦ã€ãƒ•ァイルåã€ãƒ¢ãƒ¼ãƒ‰ã€ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚’指定
with open("..\newList.csv","w",encoding="utf_8_sig") as fp:
writer = csv.writer(fp, lineterminator="\n")
# 作æˆã—ãŸã‚·ãƒ¼ãƒˆã®å„行をå–å¾—
for row in new_sheet.rows:
# å„行ã‹ã‚‰å„列をå–り出ã—ã€ãƒªã‚¹ãƒˆã«ã™ã‚‹ã€‚
# ãã®1行分ã®ãƒªã‚¹ãƒˆã‚’writer.writerow()ã«ã‚ˆã‚Šã€csvã¨ã—ã¦å‡ºåŠ›ã™ã‚‹ã€‚
writer.writerow([col.value for col in row])
Was this helpful?
Similar Posts
- murata htmlã®æ–‡å—変æ›ï¼ˆK,M →数å—)
- murata フォルダ内ã®ãƒ•ァイルをcsvã«ã¾ã¨ã‚ã‚‹
- murata ファイルを拡張åã”ã¨ã«ãƒ•ã‚©ãƒ«ãƒ€ã¸æŒ¯ã‚Šåˆ†ã‘
- murata é€”ä¸ è¦æ”¹å–„ pyautoguiを使ã£ãŸExcelã‹ã‚‰ãƒ†ã‚ストファイルã¸ã®è»¢è¨˜
- murata excel転記
- murata not public netkeiba scraping
- murata not public netkeiba data processing function