728x90
openpyxl
읽기,쓰기
속도 느림
파일 읽어오기
import openpyxl
wb = openpyxl.load_workbook('파일명')
ws = wb.worksheets[0]
# 전체 row
for cell in list(ws) :
print(cell[0].value, cell[1].value)
# 특정 열 선택
for cell in list(ws.columns)[0] :
print(cell[0].value)
# 특정 행,열 선택
for cell in ws.iter_rows(min_row=1, max_row=10, min_col=1, max_col=1):
print(cell)
wb.close()
# 수식을 제외하고 데이터만 가져오기 data_only=True
wb = load_workbook('파일명', data_only=True)
# 특정 영역 가져오기
for data in ws['A4':'B12']:
# 해당 셀의 몇번째 열일 경우
if cell.column == 1:
파일 생성하고 입력하기
import openpyxl
path = r'C:\test.xlsx'
sheetname = '시트명'
wb = openpyxl.Workbook()
ws = wb.active
ws.title = sheetname
ws['A1'].value = 'dddd'
# 또는 A를 사용하지 않고 아래처럼 쓸 수 있음
ws.cell(row=1, column=1).value = 10
또는
ws.cell(1, 3).value
wb.save(path)
wb.close()
시트 추가하기
wb.create_sheet('')
시트 가져오는 여러가지 방법
ws = wb.worksheets[0]
ws = wb.active
ws = wb['시트명']
모든 시트명 가져오기
sheets = wb.sheetnames
for sheet in sheets:
print(sheet)
폰트 추가하기
from openpyxl.styles import PatternFill
FILL = PatternFill("solid", start_color="f4cccc", end_color="f4cccc")
ws.column_dimensions['A'].width = 20
ws.row_dimensions[0].height = 50
ws['A1'].fill = FILL
xlsxwriter
쓰기
워크시트 추가, 수정 안 됨, 더 빠름
파일에 입력하기
import xlsxwriter
EXCEL_FILENAME = ''
SHEET_NAME = ''
wb = xlsxwriter.Workbook(EXCEL_FILENAME)
ws = wb.add_worksheet(SHEET_NAME)
ws.set_column('A:A', 7)
format = wb.add_format()
format.set_bold()
format.set_pattern(1)
format.set_bg_color('#f4cccc')
ws.write('A1', '번호', format)
wb.close()
# except xlsxwriter.exceptions.FileCreateError:
셀 병합하기
format = wb.add_format({
'bold' : True,
'border' : True,
'align' : 'center',
'valign' : 'vcenter',
'bg_color' : 'yellow'
})
ws.merge_range('A1:B3', 'test', format)
csv
파일 생성하고 입력하기
import csv
file_name = ''
f = open(file_name, 'w', newline="", encoding='utf-8') # cp949
csvWriter = csv.writer(f)
csvWriter.writerow(['','',''])
파일 읽어오기
f = open('파일명', 'r')
f_read = csv.reader(f_main)
# next(f_main_read) # 첫 줄 패스하기
for line in f_read:
print(line[0])
파일 정렬하기
df = pd.read_csv('파일명', encoding='utf-8')
df = df.sort_values(by=['정렬시킬 컬럼명'])
df.to_csv(exel_file_sort,encoding='utf-8',index=False)
행 추가하기
f = open(store_file_nm, 'a', newline="", encoding='utf-8')
csvWriter = csv.writer(f)
csvWriter.writerow(['','',''])
728x90
'나를 위한 코드' 카테고리의 다른 글
파이썬 gui : 항목 정리 (0) | 2023.03.20 |
---|---|
파이썬 gui : 파일, 폴더 찾기 (0) | 2023.03.20 |
pyinstaller 에 내가 원하는 폰트 지정하기 (qt designer) (0) | 2023.03.20 |
파이썬 딕셔너리 KeyError 해결 (0) | 2023.03.17 |
뷰티풀숩 속도 높이기 (3) | 2023.03.14 |
댓글