pcell(기본) - 값의 여러 형태

작성자
sjpark
작성일
2024-12-02 20:31
조회
16

값의 여러 형태

엑셀이나 자주 사용하는 텍스트 파일에서 자료를 읽어오는 기능에 대해서 알아 볼것입니다. 그런데 우리가 생각하는 자료의 형태와 컴퓨터에서의 자료는 다른 형태를 갖고 있습니다

사람은 달러나 숫자나 키로그램의 숫자들을 다 다른형태로 인식을 하면서도 다른 방법으로 해석을 하지만, 컴퓨터에서는 기본적인 값은 같으면서, 이것을 보여주는 방식을 다르게 해석을 하는 것입니다

예를 들어 36g, 36kg 36ton, 36%, $36와 같이 무수히 많은 단위들이나 표현을 전부 다른 숫자의 형태로 인식을 하면, 우리는 숫자를 표현할 수가 없을정도로 많은 것이지요

그래서 사용하게된 방법이 숫자와 단위나 표현을 다르게 하자는 식으로 사용을하는 방식을 이용합니다

즉, 내부적으로 저장되는 여러 자료를 기준으로 우리가 눈으로 보여주는 모양을 나타내는데, 그냥 값을 읽어올때는 그 여러가중에서 1가지를 선택해서 간단하게 설명을 하면, 우리가 123으로 값을 집어 넣고 123.00으로 보여줄수있는데, 우리가 일반적으로 값을 일어온다고 한다면, 123일지 아니면 123.00으로 할지를 선택해야 한다는 것이다

word-image-2604-1.png
엑셀에서의 기본적인 값 123
사람들이 원하는 형태 123.00
그래도 기존에 사용하는 엑셀의 기본을 따르는 것이 혼돈을 막고, 또다른 입장에서 보면 좋을수 있기때문에, 우리가 Value라고하면, 이것을 읽어오고, 만약 2번째의 값을 갖고오고 싶다면 Value2라는 속성을 이용하면 된다

그런데, 전반적인 설명을 하기전에, value를 기본으로 사용하며, Value2를 사용할때는 위와같이 우리가 엑셀에서 눈으로 보는 그대로르 갖고오는 것이며, 좀더 이해하기 편하게 Value3또는 맨뒤에 as_text라는 용어를 사용하기도 한다

하지만, 엑셀에서는 총 5가지의 형태로 값을 갖고올수가 있는데, 수식을 나타내는 부분은 약간 예외를 둘수도 있는데, 일단은 입력을 하는 형태이기 때문에 이것까지도 포함을 시킨 것입니다

word-image-2604-2.png

즉, 날짜를 나타낼 때, 기본적으로 시간까지 들어간다, 그래서 Text라고 만든 부분은 이것 마저도 날짜 부분만 나타나도록 만든 것이다

만약, 시간이 들어가 있을때는 전부가 00:00:00이 아니기 때문에 그때만 나타나도록 만들었다. 아랫부분은 서식을 제외한 3가지 값을 설명하도록 한다
기준 실제값 엑셀에서의 표현값 읽어오는 값
Value 123 123.00 123
Value2 123.00
Value3, as_Text 123.00
Value 45,352 2024-03-01 45,352
Value2 2024-03-01 00:00:00
Value3, as_Text 2024-03-01
아래와같은 값을 가진 것을 먼저 생각해 보면,

word-image-2604-3.png

# -*- coding: utf-8 -*-
import pcell, youtil, scolor


color = scolor.scolor()
excel = pcell.pcell()
util = youtil.youtil()

excel.new_sheet()
list_1d = [123, 123.456, "abc def", "가나다 라마바", "3/1", "2024-03-01"]
excel.write_list_1d_from_cell_as_yline("", [1,1], list_1d)
for x in [1,2,3,4,5,6]:
print(excel.read_value_in_cell("", [x,1]))
print(excel.read_value2_in_cell("", [x,1]))
print(excel.read_value3_in_cell("", [x,1]))

word-image-2604-4.png
자료형태 설명
문자를 읽어올 때 어떤 형태라도 다 같은 값을 갖고온다
단, ‘만 하나가 있는 경우는 이엇이 문자열을 만들어주는 것인지 아니면 표현을 위한 것인지를 모르지만, 기본적으로 한 개만 있을때는 무시가 된다
숫자 text로 읽어오면, 잘못표현된 그대로도 갖고오므로, 먼저 자동 열맞춤을 한 후에 하면 잘못된 표현을 막을 수가 있으니, 열맞춤을 하면 문제를 제거할수 있다
숫자(서식이 있는) 원하는 형태를 선택해서 갖고오도록 한다
날짜 날짜형 객체를 원할때
보는 그대로의 값을 갖고오고 싶을때

다른 것으로 변경하고 싶을때

날짜의 경우는 pywintypes형태로 갖고오므로, 주의하여야 한다
값을 읽어오는 여러 형태들
1개 셀의 값 읽어오기 read_value_in_cell
떨어져있는 여러 개 셀 읽어오기 read_value_in_multi_cell
1개 영역 읽어오기 read_value_in_range
떨어져있는 영역 읽어오기 2차원자료를 묶어서 반환하면, 더욱 관리하기가 어려워져 별도로 만들지 않았으며, read_value_in_range를 여러 번 사용하시기 바랍니다
선택영역의 값 읽어오기 read_value_in_selection
영역이름의 값 읽어오기 read_value_for_range_name
usedrage의 값 읽어오기 read_value_in_usedrange
numberformat값 읽어오기 read_value_in_range_with_numberformat
word-image-2604-5.png

# -*- coding: utf-8 -*-
import pcell

excel = pcell.pcell()
value = excel.read_value_in_cell("", [2,3]) #1개 셀의 값 읽어오기
print("1 ==> ", value)

value = excel.read_value_in_multi_cell("", [[2,3], [2,6], [2,8]]) #떨어져있는 여러 개 셀 읽어오기
print("2 ==> ", value)

value = excel.read_value_in_range("", [6,3,12,3])#1개 영역 읽어오기
print("3 ==> ", value)

#떨어져있는 영역 읽어오기 => excel.read_value_in_range을 여러번 사용한다
value = excel.read_value_in_selection("")#선택영역의 값 읽어오기
print("4 ==> ", value)

value = excel.read_value_for_range_name("", "영역1")#영역이름의 값 읽어오기
print("5 ==> ", value)

value = excel.read_value_in_usedrange("")#usedrage의 값 읽어오기
print("6 ==> ", value[0][0:5])

value = excel.read_value_in_range_with_numberformat("", [2,"k"])#numberformat값 읽어오기
print("7 ==> ", value)


word-image-2604-6.png
전체 0

전체 35
번호 제목 작성자 작성일 추천 조회
공지사항
pcell이란 무엇인가 (python + win32com + excel)
sjpark | 24.08.17 | 추천 0 | 조회 133
sjpark 24.08.17 0 133
공지사항
pcell의 기본 사용법
sjpark | 24.08.17 | 추천 0 | 조회 173
sjpark 24.08.17 0 173
33
pcell(기초) – 삭제 - 같은 자료 삭제 – 033
sjpark | 24.12.07 | 추천 0 | 조회 13
sjpark 24.12.07 0 13
32
pcell(기초) – 삭제 - n번마다 삭제
sjpark | 24.12.06 | 추천 0 | 조회 14
sjpark 24.12.06 0 14
31
pcell(기초) – 삭제 - 영역의 값 삭제
sjpark | 24.12.04 | 추천 0 | 조회 12
sjpark 24.12.04 0 12
30
pcell(기초) – 삭제 - 이름영역 삭제
sjpark | 24.12.04 | 추천 0 | 조회 12
sjpark 24.12.04 0 12
29
pcell(기본) - 값의 여러 형태
sjpark | 24.12.02 | 추천 0 | 조회 16
sjpark 24.12.02 0 16
28
pcell(기본) - 날짜에 대한 생각
sjpark | 24.12.02 | 추천 0 | 조회 15
sjpark 24.12.02 0 15
27
pcell 예제 : 각 라인에서 값이 제일 큰 값과 작은 값 에 색칠하기
sjpark | 24.11.23 | 추천 0 | 조회 28
sjpark 24.11.23 0 28
26
pcell 기본 : 파일 경로와 이름 읽어오기
sjpark | 24.11.18 | 추천 0 | 조회 41
sjpark 24.11.18 0 41
25
pcell 기본 : 열린 모든 엑셀파일 이름 읽어오기
sjpark | 24.11.18 | 추천 0 | 조회 35
sjpark 24.11.18 0 35
24
pcell 기본 : 활성화된 시트와 모든 시트이름 읽어오기
sjpark | 24.11.18 | 추천 0 | 조회 34
sjpark 24.11.18 0 34
23
pcell_event : 이벤트 등록으로 특정영역의 값이 바뀌면 statusbar에 그 값을 쓰기
sjpark | 24.08.25 | 추천 0 | 조회 142
sjpark 24.08.25 0 142
22
엑셀자동화 : 새로운 파일 열어, 값 입력후, 저장하고, 종료하기
sjpark | 24.08.17 | 추천 0 | 조회 111
sjpark 24.08.17 0 111