環境です
Python3.8
windows10
openpyxl
EXCEL2013
EXCELの給与一覧データから別のEXCELファイルに書き込む際、普通残業時間や休日時間外時間を明細表EXCELに作成しています。
一覧表上の深夜時間外「0:00:00」ゼロ時間というがデータに存在します。
セルのプロパティはユーザー定義「[h]:mm 」になっています。
はじめは24時間以上の時もダメでしたが、number_format='[h]:mm:ss'
を見つけて「0:00:00」以外の場合は、うまくいくようになりました。
問題は、一覧表の残業時間が「0:00:00」ゼロ時間場合だとうまくいかず、
変な年月日が値に入り(同じ年月日ではありません)、給与明細のEXCELを開いたときに該当のCELLに「###############」として(値は-1)でデータが作成されます。
回避方法を教えてください。
import openpyxl, pprint
import os
import pathlib
from openpyxl.styles import numbers
from datetime import datetime
省略
#一覧EXCELのマックス行まで回す
while i <= maxrow:
省略
#一覧ファイル側
省略
futuzangyojk=ws.cell(row=i,column = 8).value #普通残業時間
print(’futuzangyojk')
省略)
#明細ファイル
ws_iv["D11"].number_format='[h]:mm:ss'
ws_iv["D11"].value = futuzangyojk
print(’futuzangyojk')
(省略)
結果
上が読み込み
下が書込み時
残業「0:00:00」のケース
1899-12-30 00:00:00
1899-12-30 00:00:00
残業1時間のケース
01:00:00
01:00:00
(これはこれでOK)
残業「0:00:00」時間のケース
1900-01-01 12:00:00
1900-01-01 12:00:00
1899-12-30 00:00:00
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。