셀 작업하기

개요

각 워크시트는 cells Excel 스타일 주소 문자열을 매핑하는 컬렉션 (예를 들어 "A1", "B3") to Cell 객체. 셀에 직접 서브스크립트로 접근할 수 있습니다:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##Access a cell by address
cell = ws.cells["A1"]

값, 수식 및 스타일 정보는 모두 Cell 객체에 있습니다. 할 수 있습니다 셀을 제자리에서 변경하려면 해당 .value 또는 .formula 속성에, 또는 새 Cell 인스턴스를 주소에 할당하여 셀을 완전히 교체합니다.


값 읽기 및 쓰기

할당하려면 cell.value 문자열, 정수 또는 부동소수점을 쓰려면. 동일한 속성을 다시 읽어 저장된 값을 가져옵니다.

from aspose.cells_foss import Workbook

workbook = Workbook()
ws = workbook.worksheets[0]

##Write a string
ws.cells["A1"].value = "Hello, world"

##Write an integer
ws.cells["A2"].value = 42

##Write a float
ws.cells["A3"].value = 3.14159

##Read values back
print(ws.cells["A1"].value)   # Hello, world
print(ws.cells["A2"].value)   # 42
print(ws.cells["A3"].value)   # 3.14159

workbook.save("values_demo.xlsx")

해당 .value property는 모든 Python 스칼라를 허용합니다. 라이브러리는 Python 타입을 그대로 저장합니다; 쓰기 시에 암시적 변환이 발생하지 않습니다.


Cell 생성자 사용하기

Cell constructor는 값을 가진 셀을 생성할 수 있게 해줍니다 (선택적으로 a 수식) 하나의 표현식으로. 결과를 할당합니다 Cell 객체를 주소 첨자를 사용하여 시트에 배치합니다.

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##Integer cell
ws.cells["A1"] = Cell(42)

##String cell
ws.cells["A2"] = Cell("Revenue")

##Float cell
ws.cells["A3"] = Cell(3.14)

##Explicitly empty cell (no value, no formula)
ws.cells["A4"] = Cell(None)

workbook.save("cell_constructor_demo.xlsx")

첫 번째 위치 인수는 Cell 값입니다. 전달할 때 None 그 셀은 값 없이 저장되며, 이는 수식을 설정하려는 경우에 유용합니다 별도로 설정하거나, 존재하지 않는 셀 대신 명시적으로 빈 셀을 원할 때.


수식 셀

수식 셀은 정적 값과 함께(또는 대신) Excel 호환 표현식 문자열을 저장합니다. 이를 생성하는 방법은 두 가지가 있습니다.

Cell 생성자를 통해 — 값을 전달 None 값으로, 수식 문자열을 두 번째 인수로:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

ws.cells["A1"] = Cell(10)
ws.cells["A2"] = Cell(20)
ws.cells["A3"] = Cell(30)

##Formula via constructor: value=None, formula="=SUM(A1:A3)"
ws.cells["A4"] = Cell(None, "=SUM(A1:A3)")

workbook.save("formula_constructor.xlsx")

을 통해 .formula 속성 — 기존 셀의 속성을 설정합니다:

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

for i, v in enumerate([5, 10, 15, 20, 25], start=1):
    ws.cells[f"A{i}"].value = v

ws.cells["B1"].formula = "=AVERAGE(A1:A5)"

workbook.save("formula_property.xlsx")

일반 수식 빠른 참고

목적수식 문자열
범위 합계=SUM(A1:A10)
범위 평균=AVERAGE(A1:A10)
최대값=MAX(A1:A10)
최소값=MIN(A1:A10)
비어 있지 않은 개수=COUNT(A1:A10)
조건부 값=IF(A1>0,"Positive","Non-positive")
값 조회=VLOOKUP(D1,A1:B10,2,FALSE)
문자열 연결=CONCATENATE(A1," ",B1)

수식 문자열은 다음으로 시작해야 합니다 =. 라이브러리는 이를 그대로 저장합니다; Excel (또는 호환 가능한 리더) 파일이 열릴 때 식을 평가합니다.


데이터 반복하기

표준 Python 루프를 사용하여 목록에서 열이나 행을 채웁니다:

from aspose.cells_foss import Workbook

workbook = Workbook()
ws = workbook.worksheets[0]

monthly_sales = [12_500, 14_200, 9_800, 17_600, 21_100, 18_400]

##Write a header
ws.cells["A1"].value = "Monthly Sales"

##Write data starting at row 2 (index 1 → address A2)
for i, val in enumerate(monthly_sales, start=2):
    ws.cells[f"A{i}"].value = val

##Write a SUM formula below the data
last_row = 1 + len(monthly_sales)  # row index of last data cell
ws.cells[f"A{last_row + 1}"].formula = f"=SUM(A2:A{last_row})"

workbook.save("monthly_sales.xlsx")

enumerate(iterable, start=N) 패턴이 Excel 행 번호에 깔끔하게 매핑됩니다 Excel 행은 1부터 시작하기 때문입니다. 시작 위치는 start=2 행 1을 … 용도로 예약합니다 헤더.


혼합 값 유형

다음의 완전한 예제는 텍스트 헤더 행, 정수, 실수, 문자열을 포함하는 세 개의 데이터 행, 그리고 숫자 열을 요약하는 수식 행을 가진 작은 데이터 세트를 구축합니다.

from aspose.cells_foss import Workbook, Cell

workbook = Workbook()
ws = workbook.worksheets[0]

##--- Header row ---
ws.cells["A1"].value = "Product"
ws.cells["B1"].value = "Units Sold"
ws.cells["C1"].value = "Unit Price"
ws.cells["D1"].value = "Revenue"

##--- Data rows ---
##Row 2
ws.cells["A2"] = Cell("Widget A")
ws.cells["B2"] = Cell(120)
ws.cells["C2"] = Cell(9.99)
ws.cells["D2"] = Cell(None, "=B2*C2")

##Row 3
ws.cells["A3"] = Cell("Widget B")
ws.cells["B3"] = Cell(85)
ws.cells["C3"] = Cell(14.50)
ws.cells["D3"] = Cell(None, "=B3*C3")

##Row 4
ws.cells["A4"] = Cell("Widget C")
ws.cells["B4"] = Cell(200)
ws.cells["C4"] = Cell(4.75)
ws.cells["D4"] = Cell(None, "=B4*C4")

##--- Summary row ---
ws.cells["A5"].value = "TOTAL"
ws.cells["B5"] = Cell(None, "=SUM(B2:B4)")
ws.cells["D5"] = Cell(None, "=SUM(D2:D4)")

workbook.save("mixed_types_dataset.xlsx")
print("Saved mixed_types_dataset.xlsx")

Excel(또는 호환 가능한 스프레드시트 애플리케이션)에서 파일을 연 후, 그 D 열 및 the B5 / D5 셀은 평가된 결과를 표시합니다 수식 표현식의.


None 값 vs 빈 문자열

Cell(None) 그리고 ws.cells["A1"].value = None 저장된 값이 없는 셀을 만들기 값 — 대부분의 스프레드시트에서 한 번도 쓰여지지 않은 셀과 구분할 수 없습니다 리더. Cell("") 또는 ws.cells["A1"].value = "" 명시적으로 셀을 만들기 빈 문자열을 포함하며, 일부 리더와 수식은 이를 다르게 처리합니다 (예를 들어, =COUNT 빈 문자열 셀을 빈 셀을 무시하는 것과 같은 방식으로 무시합니다 셀을, 하지만 =COUNTA 그것들을 계산합니다).

수식 문자열 vs 정적 값

읽기 .value 수식 셀에서 읽으면 반환됩니다 None (또는 마지막 캐시된 값이 수식이 할당되기 전에 설정된 경우). 읽기 .formula 반환합니다 표현식 문자열을 반환합니다. 수식 셀과 …를 구분해야 하는 경우 런타임에서 plain-value 셀을 확인하고, 여부를 검사합니다 ws.cells["A1"].formula 비어 있지 않음:

cell = ws.cells["A1"]
if cell.formula:
    print(f"Formula: {cell.formula}")
else:
    print(f"Value: {cell.value}")

또 보기

 한국어