openpyxl 공식 안내서
openpyxl 공식 안내서
튜토리얼 튜토리얼
excel 파일 만들기 워크북 만들기
There is no need to create a file on the filesystem to get started with openpyxl. Just import the Workbook
class and start work: openpyxl을 사용하기 시작할 때 파일 시스템에서 파일을 만들 필요가 없습니다. workbook
클래스를 가져오면 됩니다.>>> from openpyxl import Workbook
>>> wb = Workbook()
A workbook is always created with at least one worksheet. You can get it by using the Workbook.active
property: 워크북을 만든 후 Workbook.active
속성을 통해 워크북을 찾을 수 있습니다.>>> ws = wb.active
Note This is set to 0 by default. Unless you modify its value, you will always get the first worksheet by using this method. 이 워크북의 기본 인덱스는 0부터 시작합니다.색인 값이 수정되지 않으면, 이 방법을 사용하면 항상 첫 번째 작업표를 얻을 수 있습니다.
You can create new worksheets using the Workbook.create_sheet()
method: Workbook.create_sheet()
방법으로 새 작업표를 만들 수 있습니다>>> ws1 = wb.create_sheet("Mysheet") # ( )
>>> ws2 = wb.create_sheet("Mysheet", 0) #
>>> ws3 = wb.create_sheet("Mysheet", -1) #
Sheets are given a name automatically when they are created. They are numbered in sequence (Sheet, Sheet1, Sheet2, …). You can change this name at any time with the Worksheet.title
property: 작업표는 만들 때 숫자 시퀀스에 따라 자동으로 명명됩니다(예를 들어 Sheet, Sheet1, Sheet2,...).언제든지 Worksheet.title
속성을 통해 워크시트 이름을 수정할 수 있습니다.>>>ws.title = "New Title"
The background color of the tab holding this title is white by default. You can change this providing an RRGGBB
color code to the Worksheet.sheet_properties.tabColor
attribute: 만든 작업표의 탭 배경색은 기본적으로 흰색입니다.Worksheet.sheet_properties.tabColor
객체에서 RRGGBB
형식의 색상 코드를 설정하여 수정할 수 있습니다.>>>ws.sheet_properties.tabColor = "1072BA"
Once you gave a worksheet a name, you can get it as a key of the workbook: 워크시트 이름을 설정하면 워크시트의 인덱스로 사용할 수 있습니다.>>> ws3 = wb["New Title"]
You can review the names of all worksheets of the workbook with the Workbook.sheetname
attribute는 Workbook.sheetname
대상을 통해 워크북의 모든 워크북의 이름을 볼 수 있습니다>>> print(wb.sheetnames)
['Sheet2', 'New Title', 'Sheet1']
워크시트를 통해 전체 워크북을 훑어볼 수 있습니다.>>> for sheet in wb:
... print(sheet.title)
You can create copies of worksheets within a single workbook: Workbook.copy_worksheet()
method: Workbook.copy_worksheet()
방법으로 워크북의 모든 테이블의 복사본을 만들 수 있습니다.>>> source = wb.active
>>> target = wb.copy_worksheet(source)
Note Only cells (including values, styles, hyperlinks and comments) and certain worksheet attribues (including dimensions, format and properties) are copied. All other workbook/worksheet attributes are not copied - e.g. Images, Charts. 값, 스타일, 하이퍼링크, 메모 및 치수, 형식 및 매개변수를 포함한 일부 워크시트 객체만 복사됩니다.그림, 도표 같은 다른 속성은 복사되지 않습니다.
You also cannot copy worksheets between workbooks. You cannot copy a worksheet if the workbook is open in read-only or write-only mode. 두 개의 작업장에 작업표를 복사할 수 없습니다.워크북이 읽기만 하거나 쓰기만 하는 상태일 때도 워크시트를 복사할 수 없습니다.
데이터 조작Playing with data
셀 액세스하기 Accessing one cell
Now we know how to get a worksheet, we can start modifying cells content. Cells can be accessed directly as keys of the worksheet: 이제 워크시트를 가져오는 방법을 알고 있습니다. 단원격 내용을 수정할 수 있습니다.셀은 워크시트의 인덱스를 통해 직접 액세스할 수 있습니다.>>> c = ws['A4']
This will return the cell at A4, or create one if it does not exist yet. Values can be directly assigned: "A4"에 있는 칸의 내용을 되돌려줍니다. 존재하지 않으면 하나를 만듭니다.셀에 직접 값을 지정할 수 있습니다.>>> ws['A4'] = 4
There is also the Worksheet.cell()
method. 이것은 Worksheet.cell()
의 방법이다.이것은 행과 열 표기법을 사용하여 셀에 대한 액세스를 제공합니다. 행렬 번호를 통해 셀에 접근할 수 있습니다.>>> d = ws.cell(row=4, column=2, value=10)
Note When a worksheet is created in memory, it contains no cells. They are created when first accessed. 메모리에 작업표를 만들면 테이블에 칸이 포함되지 않습니다.셀은 첫 번째 액세스 시 생성됩니다.
Warning Because of this feature, scrolling through cells instead of accessing them directly will create them all in memory, even if you don’t assign them a value.Something like는 이러한 특성 때문에 이 칸에 접근하지 않고 메모리에 값을 부여하지 않아도 모두 생성합니다.예를 들면>>>for x in range(1,101):
... for y in range(1,101):
... ws.cell(row=x, column=y)
여러 셀 액세스
Ranges of cells can be accessed using slicing: 슬라이스를 통해 범위 내의 칸에 접근할 수 있습니다.>>> cell_range = ws['A1':'C2']
Ranges of rows or columns can be obtained similarly: 행이나 열의 칸도 비슷한 방법으로 접근할 수 있습니다.>>> colC = ws['C']
>>> col_range = ws['C:D']
>>> row10 = ws[10]
>>> row_range = ws[5:10]
You can also use the Worksheet.iter_rows()
method: 마찬가지로 Worksheet.iter_rows()
메서드를 사용할 수도 있습니다.>>> for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):
... for cell in row:
... print(cell)
| | | | | |
Likewise the Worksheet.iter_cols()
method will return columns: 유사합니다. Worksheet.iter_cols()
방법으로 열을 되돌려줍니다.>>> for col in ws.iter_cols(min_row=1, max_col=3, max_row=2):
... for cell in col:
... print(cell)
| | | | | |
Note For performance reasons the Worksheet.iter_cols()
method is not available in read-only mode. 성능 측면에서 Worksheet.iter_cols()
메서드는 읽기 전용 모드에서는 지원되지 않습니다.
If you need to iterate through all the rows or columns of a file, you can instead use the Worksheet.rows
property: 파일 내의 모든 줄과 열을 훑어볼 필요가 있으면 Worksheet.rows
속성을 사용할 수 있습니다.>>> ws = wb.active
>>> ws['C9'] = 'hello world'
>>> tuple(ws.rows)
((, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ))
| | | | | | | | | | | | | | | | | | | | | | | | | | |
or the Worksheet.columns
property: 또는 Worksheet.columns
속성>>> tuple(ws.columns)
((,
,
,
,
,
,
...
,
,
),
(,
,
,
,
,
,
,
,
))
| | | | | | | | | | | | | | | | | |
Note For performance reasons the Worksheet.columns
property is not available in read-only mode. 성능상의 이유로 Worksheet.columns
속성은 읽기 전용 모드를 지원하지 않습니다.
평가 값 only
If you just want the values from a worksheet you can use the Worksheet.values
property. This iterates over all the rows in a worksheet but returns just the cell values: 작업표에서 값만 가져오면 Worksheet.values
속성을 사용할 수 있습니다.이것은 작업표의 모든 줄을 훑어보지만 셀 값만 되돌려줍니다.for row in ws.values:
for value in row:
print(value)
Both Worksheet.iter_rows()
and Worksheet.iter_cols()
can take the values_only parameter to return just the cell's value: Worksheet.iter_rows()
및 Worksheet.iter_cols()
셀 값만 되돌려줍니다.>>> for row in ws.iter_rows(min_row=1, max_col=3, max_row=2, values_only=True):
... print(row)
(None, None, None)
(None, None, None)
데이터 스토리지 할당
Once we have aCell
, we can assign it a value: 셀 대상을 만들면 값을 부여할 수 있습니다.>>> c.value = 'hello, world'
>>> print(c.value)
'hello, world'
>>> d.value = 3.14
>>> print(d.value)
3.14
Saving to a file 저장
The simplest and safest way to save a workbook is by using the Workbook.save()
method of the Workbook
object: Workbook
대상에 대한 사용 Workbook.save()
방법으로 워크북을 간단하고 안전하게 저장할 수 있습니다.>>> wb = Workbook()
>>> wb.save('balances.xlsx')
Warning This operation will overwrite existing files without warning. 경고 없이 같은 이름의 파일을 덮어씁니다.
Note The filename extension is not forced to be xlsx or xlsm, although you might have some trouble opening it directly with another application if you don’t use an official extension. 파일 확장자는 xlsx나 xlsm로 강제되지 않습니다. 자주 사용하는 확장자를 사용하지 않으면, 다른 응용 프로그램으로 이 파일을 열 때 이상이 있을 수 있습니다.
As OOXML files are basically ZIP files, you can also open it with your favourite ZIP archive manager. OOXML 파일은 zip 파일을 기반으로 하기 때문에 자주 사용하는 압축 해제 소프트웨어로 열 수도 있습니다.
스트리밍으로 저장 Saving as a stream
If you want to save the file to a stream, e.g. when using a web application such as Pyramid, Flask or Django then you can simply provide aNamedTemporaryFile()
: 흐르는 방식으로 파일을 저장해야 합니다. 예를 들어 Pyramid, Flask 또는 Django 같은 웹 응용 프로그램을 사용하려면 NamedTemporaryFile()
방법을 사용할 수 있습니다.>>> wb = load_workbook('document.xlsx')
>>> wb.template = True
>>> wb.save('document_template.xltx')
or set this attribute to False(default), to save as a document: 또는 이 대상을 False로 설정합니다.>>> wb = load_workbook('document_template.xltx')
>>> wb.template = False
>>> wb.save('document.xlsx', as_template=False)
Warning You should monitor the data attributes and document extensions for saving documents in the document templates and vice versa, otherwise the result table engine can not open the document.
Note The following will fail: >>> wb = load_workbook('document.xlsx')
>>> # Need to save with the extension *.xlsx
>>> wb.save('new_document.xlsm')
>>> # MS Excel can't open the document
>>>
>>> # or
>>>
>>> # Need specify attribute keep_vba=True
>>> wb = load_workbook('document.xlsm')
>>> wb.save('new_document.xlsm')
>>> # MS Excel will not open the document
>>>
>>> # or
>>>
>>> wb = load_workbook('document.xltm', keep_vba=True)
>>> # If we need a template document, then we must specify extension as *.xltm.
>>> wb.save('new_document.xlsm')
>>> # MS Excel will not open the document
파일 읽기Loading from a file
The same way as writing, you can use the openpyxl.load_workbook()
to open an existing workbook: 쓰기 작업과 마찬가지로 openpyxl.load_workbook()
존재하는 워크북을 열 수 있습니다.>>> from openpyxl import load_workbook
>>> wb2 = load_workbook('test.xlsx')
>>> print wb2.sheetnames
['Sheet2', 'New Title', 'Sheet1']
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
>>> from openpyxl import Workbook
>>> wb = Workbook()
>>> ws = wb.active
>>> ws1 = wb.create_sheet("Mysheet") # ( )
>>> ws2 = wb.create_sheet("Mysheet", 0) #
>>> ws3 = wb.create_sheet("Mysheet", -1) #
>>>ws.title = "New Title"
>>>ws.sheet_properties.tabColor = "1072BA"
>>> ws3 = wb["New Title"]
>>> print(wb.sheetnames)
['Sheet2', 'New Title', 'Sheet1']
>>> for sheet in wb:
... print(sheet.title)
>>> source = wb.active
>>> target = wb.copy_worksheet(source)
>>> c = ws['A4']
>>> ws['A4'] = 4
>>> d = ws.cell(row=4, column=2, value=10)
>>>for x in range(1,101):
... for y in range(1,101):
... ws.cell(row=x, column=y)
>>> cell_range = ws['A1':'C2']
>>> colC = ws['C']
>>> col_range = ws['C:D']
>>> row10 = ws[10]
>>> row_range = ws[5:10]
>>> for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):
... for cell in row:
... print(cell)
| | | | | |
>>> for col in ws.iter_cols(min_row=1, max_col=3, max_row=2):
... for cell in col:
... print(cell)
| | | | | |
>>> ws = wb.active
>>> ws['C9'] = 'hello world'
>>> tuple(ws.rows)
((, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ))
| | | | | | | | | | | | | | | | | | | | | | | | | | |
>>> tuple(ws.columns)
((,
,
,
,
,
,
...
,
,
),
(,
,
,
,
,
,
,
,
))
| | | | | | | | | | | | | | | | | |
for row in ws.values:
for value in row:
print(value)
>>> for row in ws.iter_rows(min_row=1, max_col=3, max_row=2, values_only=True):
... print(row)
(None, None, None)
(None, None, None)
>>> c.value = 'hello, world'
>>> print(c.value)
'hello, world'
>>> d.value = 3.14
>>> print(d.value)
3.14
>>> wb = Workbook()
>>> wb.save('balances.xlsx')
>>> wb = load_workbook('document.xlsx')
>>> wb.template = True
>>> wb.save('document_template.xltx')
>>> wb = load_workbook('document_template.xltx')
>>> wb.template = False
>>> wb.save('document.xlsx', as_template=False)
>>> wb = load_workbook('document.xlsx')
>>> # Need to save with the extension *.xlsx
>>> wb.save('new_document.xlsm')
>>> # MS Excel can't open the document
>>>
>>> # or
>>>
>>> # Need specify attribute keep_vba=True
>>> wb = load_workbook('document.xlsm')
>>> wb.save('new_document.xlsm')
>>> # MS Excel will not open the document
>>>
>>> # or
>>>
>>> wb = load_workbook('document.xltm', keep_vba=True)
>>> # If we need a template document, then we must specify extension as *.xltm.
>>> wb.save('new_document.xlsm')
>>> # MS Excel will not open the document
>>> from openpyxl import load_workbook
>>> wb2 = load_workbook('test.xlsx')
>>> print wb2.sheetnames
['Sheet2', 'New Title', 'Sheet1']
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.