普通のシステムエンジニアの備忘録

きみひで と言います。個人勉強で触れた技術など備忘禄と時々日常を綴ります。

Python CSVから特定のデータを抜き出してエクセルに書きこむ

備忘禄

あるシステムの作業実績データのCSVを抜き出せるが、データが余分な人のデータまで抜き出してしまう。必要な行の必要な項目だけまとめたCSVを抽出する。

DBをRead権限で参照させてほし・・・・

 

import openpyxl
import pprint
import os
import csv


SheetName = "Sheet1"
caseNameColumn = "A"


####書き出しエクセルの情報
#書き出すエクセルファイル
resultFileName = 'output.xlsx'
resultFile = openpyxl.load_workbook(resultFileName)
# シートを取得
sheetResult = resultFile['Sheet1']
#カラム
name          = "A"
month         = "B"
project       = "C"
yoteikosu     = "D"

resultCount = 1

#とりあえず20行分まわす
for num in range(20):
  caseGyo = str(num + 1)
#  print(caseGyo)
  caseName = caseNameColumn + caseGyo
  wb = openpyxl.load_workbook("対象.xlsx")
  sheet = wb[SheetName]
  cell1 = sheet[caseName]
  if (cell1.value == None):
     break
  print(cell1.value)
  #------------
  csvfile = open("data.csv", 'r')
  reader = csv.reader(csvfile)
  for row in reader: 
    if (cell1.value == row[0]):
      resultCount = resultCount + 1
      print("csv",row[3], " " , resultCount)
      sheetResult[name       + str(resultCount)] = row[0]
      sheetResult[month      + str(resultCount)] = row[0]
      sheetResult[project    + str(resultCount)] = row[1]
      sheetResult[yoteikosu  + str(resultCount)] = row[2]

      # 保存する
      resultFile.save(resultFileName)