[Python] data_only = True로 값을 전기합니다.
오늘의 주의(복습)는, 값의 전기에 관해서입니다.
파이썬에서 Excel을 조작하기 위해 openpyxl이라는 패키지를 사용하고 있습니다.
다음과 같은
〇〇시, △△시・・・와 지구마다의 평균 시급의 대장을 만들고 싶습니다.
평균 시급은 계산식으로 나타내고 있습니다.
여담:「#DIV/0!」대책
덧붙여서입니다만, 이쪽과 같이 아무것도 입력하고 있지 않거나 하면 「#DIV/0!」라고 표시되어 버리는 일이 없습니까.
이 표시, 「0」으로 나누고 있기 때문에 의미로 해서 수수하게 싫어요・・・.
대책으로서는
=IFERROR(計算式,"")
라고 써 주면・・・.
이런 느낌으로 표시가 사라집니다. 개인적으로 깔끔합니다!
cell.value 속성
cell(行番号,列番号).value
cell(1,1) == ws['A1']
cell(5,10) == ws['J5']
1 시작에서 셀의 주소를 설정할 수 있습니다.
반복 처리로, 행이나 열을 어긋나 갈 때에 편리하게 해 줄 것 같습니다.
lord_workbook 함수에서 data_only=True를 지정한다.
이번 문제는 수식이 아닌 계산 결과의 값을 읽고 싶기 때문에
lord_workbook(ファイル, data_only=True)
위와 같이 기술해 주면 계산 결과의 값을 읽어 줍니다.
다만, 그대로 Workbook.save등으로 저장해 버리면 수식도 지워 버리므로
다른 통합 문서에 전기 될 것이며 덮어 쓰지 않도록주의가 필요합니다.
cell.number_format에서 서식 설정 복사
이쪽은 수수한 곳입니다만, 시급의 평균치이므로 셀의 서식 설정도 통화입니다.
역시 여기는 서식 설정도 복사하고 싶네요!
이것은 셀의 number_fomat 속성으로 얻을 수 있습니다.
cell.number_format
이것들을 합쳐서 작성해 보면
read_cell.pyfrom pathlib import Path
from openpyxl import load_workbook, Workbook
wb_new = Workbook()
ws_new = wb_new.active
ws_new.title = '台帳'
ws_new.column_dimensions['A'].width = 20
path = Path('../地区別平均時給')
for i, file in enumerate(path.glob('*.xlsx')):
wb = load_workbook(file, data_only=True)
ws = wb['チェックリスト']
row_no = i + 1
# セルD23を転記
ws_new.cell(row_no, 1).value = ws['D23'].value
# セルL23を転記
ws_new.cell(row_no, 2).value = ws['L23'].value
# セルL23の表示設定をコピー
ws_new.cell(row_no, 2).number_format = ws['L23'].number_format
wb_new.save('平均時給一覧.xlsx')
되었습니다.
개인적으로는 중요한 곳을 공부할 수 있었다고 우하우하하고 있습니다.
Reference
이 문제에 관하여([Python] data_only = True로 값을 전기합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rihu-do/items/979bd657faf7344db89b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
cell(行番号,列番号).value
cell(1,1) == ws['A1']
cell(5,10) == ws['J5']
이번 문제는 수식이 아닌 계산 결과의 값을 읽고 싶기 때문에
lord_workbook(ファイル, data_only=True)
위와 같이 기술해 주면 계산 결과의 값을 읽어 줍니다.
다만, 그대로 Workbook.save등으로 저장해 버리면 수식도 지워 버리므로
다른 통합 문서에 전기 될 것이며 덮어 쓰지 않도록주의가 필요합니다.
cell.number_format에서 서식 설정 복사
이쪽은 수수한 곳입니다만, 시급의 평균치이므로 셀의 서식 설정도 통화입니다.
역시 여기는 서식 설정도 복사하고 싶네요!
이것은 셀의 number_fomat 속성으로 얻을 수 있습니다.
cell.number_format
이것들을 합쳐서 작성해 보면
read_cell.pyfrom pathlib import Path
from openpyxl import load_workbook, Workbook
wb_new = Workbook()
ws_new = wb_new.active
ws_new.title = '台帳'
ws_new.column_dimensions['A'].width = 20
path = Path('../地区別平均時給')
for i, file in enumerate(path.glob('*.xlsx')):
wb = load_workbook(file, data_only=True)
ws = wb['チェックリスト']
row_no = i + 1
# セルD23を転記
ws_new.cell(row_no, 1).value = ws['D23'].value
# セルL23を転記
ws_new.cell(row_no, 2).value = ws['L23'].value
# セルL23の表示設定をコピー
ws_new.cell(row_no, 2).number_format = ws['L23'].number_format
wb_new.save('平均時給一覧.xlsx')
되었습니다.
개인적으로는 중요한 곳을 공부할 수 있었다고 우하우하하고 있습니다.
Reference
이 문제에 관하여([Python] data_only = True로 값을 전기합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rihu-do/items/979bd657faf7344db89b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
cell.number_format
from pathlib import Path
from openpyxl import load_workbook, Workbook
wb_new = Workbook()
ws_new = wb_new.active
ws_new.title = '台帳'
ws_new.column_dimensions['A'].width = 20
path = Path('../地区別平均時給')
for i, file in enumerate(path.glob('*.xlsx')):
wb = load_workbook(file, data_only=True)
ws = wb['チェックリスト']
row_no = i + 1
# セルD23を転記
ws_new.cell(row_no, 1).value = ws['D23'].value
# セルL23を転記
ws_new.cell(row_no, 2).value = ws['L23'].value
# セルL23の表示設定をコピー
ws_new.cell(row_no, 2).number_format = ws['L23'].number_format
wb_new.save('平均時給一覧.xlsx')
Reference
이 문제에 관하여([Python] data_only = True로 값을 전기합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rihu-do/items/979bd657faf7344db89b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)