반응형

오픈파이엑셀 5

[openpyxl] 행이나 열 전체를 복사해서 이동

앞에서는 그리고 복사할 때는 그냥 value 옵션을 이용해서 하면 된다고 했는데, 행이나 열 전체를 옮길 때는 조금 살짝 복잡할 수 있습니다. 우선 1행 전체를 다 옮겨서 10줄 아래로 옮긴다고 가정하면, 일단 전체 rows를 지정해줘야 합니다. rows=ws.iter_rows(min_row=0, max_row=0) 그리고 각 row를 읽어주고 그 row에 있는 cell value 값을 다시 읽어주고 옮겨주면 됩니다. for row in rows: for cell in row: cell_new=ws.cell(row=15, column=cell.col_idx, value=cell.value) 여기서 cell.col_inx는 칼럼 배열 숫자를 얘기합니다. cell이 쓰는 칼럼 넘버. 종종 쓰세요. 유용합니다..

[openpyxl] 특정 셀을 복사해서 붙여 넣을 때

이 때는 ws.cell을 이용해서 old, new variable을 만들어줘서 해주면 됩니다. 예를 들어 1행 1열에 있는 값을 복사해서 11행 5열로 옮긴다고 하면 우선 기존 1행 1열 값을 적어주고 이걸 기존의 새로운 값으로 넣어준다고 하면 됩니다. old_cell=ws.cell(1, 1) new_cell=ws.cell(11, 5, value=old_cell.value) 여기서 조심해야 할 게 .value입니다. value option에 old_cell.value라고 하는 거 잊지 마시구요. 마찬가지로 1행 2열을 특정 장소로 옮긴다고 하면 old_cell=ws.cell(1, 2) new_cell=ws.cell(12, 5, value=old_cell.value) 결과는 다음과 같습니다.

[openpyxl] 새로운 행, 열을 더하고 삭제하는 법 #2:

우선 sheet를 하나 만들어봅니다. from openpyxl import Workbook wb=Workbook() ws1=wb["Sheet"] 오늘 쓸 명령어는 insert_rows, delete_rows, insert_cols, delete_cols입니다. 이름에서 어떤 기능이 있는지 금방 아실 겁니다. 여기서 조심해야 할 것은 맨 처음 행은 0으로 표시하되, 열은 1로 시작한다는 것입니다. 예를 들어 빈 한 줄을 더해라 하면, ws.insert_rows(0) 맨 처음 줄이 아니라 그 다음 줄에 한 줄을 더해라 하면, ws.insert_rows(1) 그런데 열은 1부터 시작하니까 만약에 빈 열을 첫번째 칼럼으로 더 해라 하면, ws.insert_cols(1) 1행에서 5행까지 일괄적으로 없애라 하면 ..

[openpyxl]  excel 파일 저장하기 전에 파이썬 콘솔에서 결과 미리 프린트해서 보는 법

내용이 방대하면 추천하는 방법은 아닙니디만, 몇 개의 셀 정도만 있고 openpyxl로 내용이 변경되거나 추가된 내용을 아나콘다나 주피터 등에서 바로 확인하려면 함수를 만들어서 하는 게 편합니다. 저도 외부에서 가져온 방법이긴 합니다만 다음과 같이 함수를 정의하고 출력해주면 좋습니다. def print_rows(ws): row_string = "" for row in ws.iter_rows(min_row=1, max_col=ws.max_column, max_row=ws.max_row): for cell in row: row_string += "{:

[openpyxl] 엑셀 칼럼 (알파벳)이 몇 번째 칼럼인지 알고 싶다면?

엑셀은 칼럼을 번호를 쓰는 게 아니라 알파벳으로 쓰죠? 그래서 때론 칼럼 인덱스를 원하는 경우가 있는데요. 이 때는 get_column_letter나 column_index_from_string 함수를 쓰면 됩니다. 이건 뭐 굳이 엑셀 파일을 불러오거나 할 것도 없구요. 함수 불러온다음에 엑셀에서 200번째 칼럼의 알파벳은 엑셀로 뭐냐? from openpyxl.utils.cell import get_column_letter get_column_letter(200) 이러면 GR인 것을 알 수 있습니다. 반대로 엑셀 칼럼 알파벳이 AAA면 이게 도대체 몇 번째 칼럼인거야라고 묻는다면 from openpyxl.utils.cell import column_index_from_string column_index..

카테고리 없음 2020.05.27
반응형