파이썬 프로그래밍으로 지루한 작업 자동화하기 학습중..

openpyxl모듈은 교재의 내용과 최신 release된 문서와의 내용 차이가 커서 더 이상 진행하기 어려웠습니다.  https://openpyxl.readthedocs.org의 문서를 참고하는게 더 좋을 것 같습니다.



## 엑셀 문서 만들고 저장하기

import openpyxl, os
wb = openpyxl.Workbook()
print(wb.get_sheet_names())
sheet = wb.active
print(sheet.title)
sheet.title = 'SOSAGE BEAN ERR Sheet'
print(wb.get_sheet_names())

wb = openpyxl.load_workbook('example.xlsx')
sheet = wb.active
sheet.title = 'Sosage Sosage Sosage'
wb.save('example_copy.xlsx')

wb = openpyxl.Workbook()
print(wb.get_sheet_names())
wb.create_sheet()
print(wb.get_sheet_names())
wb.create_sheet(index = 0, title = 'FIRST SHEET')
print(wb.get_sheet_names())
wb.create_sheet(index = 0, title = 'middle SHEET')
print(wb.get_sheet_names())
wb.remove_sheet(wb.get_sheet_by_name('middle SHEET'))
wb.remove_sheet(wb.get_sheet_by_name('Sheet1'))
print(wb.get_sheet_names())




## 셀에 값을 쓰기
wb = openpyxl.Workbook()
print(wb.get_sheet_names())
sheet = wb.get_sheet_by_name('Sheet')
sheet['A1'] = 'Hello Python!'
print(sheet['A1'].value)

wb = openpyxl.load_workbook(('produceSales.xlsx'))
sheet = wb.get_sheet_by_name('Sheet')




## 업데이트할 정보의 데이터 구조 정하기
import openpyxl

wb = openpyxl.load_workbook('produceSales.xlsx')
sheet = wb.get_sheet_by_name('Sheet')
PRICE_UPDATE = {'Garlic' : 3.07, 'Cellery' : 1.19, 'Lemon' : 1.27}
for rowNum in range(2, sheet.max_row) :
produceName = sheet.cell(row = rowNum, column = 1).value
# print(produceName)
if produceName in PRICE_UPDATE :
sheet.cell(row = rowNum, column = 2).value = PRICE_UPDATE[produceName]
# print(produceName)
wb.save('updateProduceSales.xlsx')




## 수식
import openpyxl

wb = openpyxl.Workbook()
sheet = wb.active
sheet['A1'] = 200
sheet['A2'] = 300
sheet['A3'] = '=SUM(A1:A2)'
wb.save('writeFormula.xlsx')




## 행과 열을 조절하기
import openpyxl
wb = openpyxl.Workbook()
sheet = wb.active
sheet['A1'] = 'Tall row'
sheet['B2'] = 'Wide column'
sheet.row_dimensions[1].height = 70
sheet.column_dimensions['B'].width = 20
wb.save('dimension.xlsx')




## 셀 병합 및 분할

import openpyxl

wb = openpyxl.Workbook()
sheet = wb.active
sheet.merge_cells('A1:D3')
sheet['A1'] = 'Twelve cells merged together'
sheet.merge_cells('C5:D5')
sheet['C5'] = 'Two merged cells'
wb.save('merged.xlsx')

import openpyxl

wb = openpyxl.load_workbook('merged.xlsx')
sheet = wb.active
sheet.unmerge_cells('A1:D3')
sheet.unmerge_cells('C5:D5')
wb.save('unmerged.xlsx')



# 틀고정
# sheet.freeze_panes = 'A2' 1
# sheet.freeze_panes = 'B1' A
# sheet.freeze_panes = 'C1' A B
# sheet.freeze_panes = 'C2' 1행과 A B
# sheet.freeze_panes = 'A1' 틀 고정 없음



'파이썬(PYTHON)' 카테고리의 다른 글

파이썬의 함수1  (0) 2020.08.19
파이썬의 변수  (0) 2020.08.18
openpyxl 모듈 활용 연습2  (0) 2020.08.16
openpyxl 모듈 활용 연습1  (0) 2020.08.16
웹 스크랩 모듈 활용 연습  (0) 2020.08.15

구글 애드센스 승인 3번째 거절 통지를 받았습니다.


처음과 두번째는 컨텐츠도 부족하고, 기술적인 부분에 대한 이유로 거절받아 기분이 나쁘지는 않았습니다만 이번에는 가치 판단을 가지고 거절 통지를 받으니 상당히 기분이 언짢았습니다. 지가 모라고 가치를 논하는지 로봇 주제에.. 이와 같은 거절 이유를 갖고있는 경우 문제점이 


1. 포스팅된 글이 삭제된 경우, 즉 404 Not Found로 인해 포스팅이 사라진 경우 아무래도 광고를 게재할 페이지의 이상을 감지한 것이니 당연한 결과일 수 있다는 생각이 듭니다. 실제로 컨텐츠가 없으니 이러한 통보를 받을 수 있는 것입니다. 이 경우  네이버 웹마스터 도구나 구글 SearchConsole의 도움을 받아 삭제를 해서 정리가 필요하다고 합니다.

 

2. 주제가 너무 분산된 경우, 인용구가 많은 경우도 이러한 통보를 받을 수 있다고 합니다. 아무래도 구글은 전문성있는 컨텐츠로 깊이있게 페이지를 정독할 수 있는가에 좀더 가치를 두는 것 같습니다. 그래야 광고를 보는 시간도 길어지고 그러다보면 광고  노출도 잘 이루어지니까요.


3. 소수의 의견으로는 블로그 형태가 전체글 표시 형태인 경우 블로그 내에서 페이지 검색에 불편을 줄 수 있다고 판단하는지 비추천하네요. 목록형으로의 변경을 검토할 필요가 있겠습니다.


4. 아무래도 제 글을 보면 대부분 순수 개인적인 참고용으로 만들었다라고 느껴질 만큼 자세한 설명도 없고 그러다보니 컨텐츠 하나 하나의 분량도 적고 그러다보니 광고를 게재할 만한 페이지가 안나올 수 있겠다는 생각이 듭니다. 처음 시작이 개인적인 참고용으로 혹시나 제가 알게된 사실들이 다른 분들께 도움이 될까하여 올린 것이라 구글 입장에서는 상품성을 전혀 느낄 수 없겠다라는 생각이 듭니다. 


이유야 어쨌든 저렇게 폄하받고 나니 이제는 약간의 자존심 문제로 오기가 생겨서 바로 다시 재신청했습니다. 보통 승인 거절 후 3 ~ 4주 지나 다시 신청하길 권장하던데 그냥 욱해서 신청했더니 아래와 같은 결과를 즉시 받았습니다.



코로나하고 사이트 검토하고 무슨 상관이냐구요. 모 암튼 계속 도전해볼랍니다. 블로그 원데이투데이하려고 한것은 아니니까요.

'IT' 카테고리의 다른 글

Lenovo IdeaPad Flex 5 구매  (0) 2020.10.08
구글 애드센스 승인 절차-4  (0) 2020.10.01
구글 애드센스 승인 절차-2  (0) 2020.08.01
Mousejacking에 대하여(마우스재킹)  (0) 2020.07.31
모처럼 일찍 퇴근했는데..  (0) 2020.07.23

파이썬 프로그래밍으로 지루한 작업 자동화하기 학습중..

openpyxl모듈은 교재의 내용과 최신 release된 문서와의 내용 차이가 커서 더 이상 진행하기 어려웠습니다.  https://openpyxl.readthedocs.org의 문서를 참고하는게 더 좋을 것 같습니다.



import openpyxl, pprint, os

wb = openpyxl.load_workbook('censuspopdata.xlsx')
sheet = wb.get_sheet_by_name('Population by Census Tract')
countryData = {}
print('Reading rows...')
for row in range(2, sheet.max_row + 1) :
state = sheet['B' + str(row)].value
county = sheet['C' + str(row)].value
pop = sheet['D' + str(row)].value
# print(state, county, pop)
countryData.setdefault(state, {})
countryData[state].setdefault(county, {'tracts' : 0, 'pop' : 0})
countryData[state][county]['tracts'] += 1
countryData[state][county]['pop'] += int(pop)
print(countryData['AK']['Anchorage']['tracts'])
print('Writing resuts...')
resultFile = open('census20.py', 'w')
resultFile.write('allData = ' + pprint.pformat(countryData))
resultFile.close()
print('Done')
import census20
os.chdir('C:\\Users\\yyiis\\Desktop')
print(census20.allData['AK']['Anchorage']['pop'])



이 책은 예제를 풀어 나가는 재미가 있네요. 오타나 오역, 구글 번역기 돌린 것 같은 문맥이 좀 눈에 들어 오는데 크게 문제되지는 않는 것 같습니다. 다만 파이썬이라는 프로그램이 지속적으로 업데이트되고 있어서 활용에 있어서 막히는 경우가 발생하지만 구글링하면 금방 답이 나오네요.

'파이썬(PYTHON)' 카테고리의 다른 글

파이썬의 변수  (0) 2020.08.18
openpyxl 모듈 활용 연습3  (0) 2020.08.16
openpyxl 모듈 활용 연습1  (0) 2020.08.16
웹 스크랩 모듈 활용 연습  (0) 2020.08.15
logging 모듈 활용 연습  (0) 2020.08.15

+ Recent posts