openpyxl 공식 안내서

12562 단어

openpyxl 공식 안내서


튜토리얼 튜토리얼


excel 파일 만들기 워크북 만들기


There is no need to create a file on the filesystem to get started with openpyxl. Just import the Workbookclass 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.activeproperty: 워크북을 만든 후 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.titleproperty: 작업표는 만들 때 숫자 시퀀스에 따라 자동으로 명명됩니다(예를 들어 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 RRGGBBcolor code to the Worksheet.sheet_properties.tabColorattribute: 만든 작업표의 탭 배경색은 기본적으로 흰색입니다.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.sheetnameattribute는 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.rowsproperty: 파일 내의 모든 줄과 열을 훑어볼 필요가 있으면 Worksheet.rows 속성을 사용할 수 있습니다.
>>> ws = wb.active
>>> ws['C9'] = 'hello world'
>>> tuple(ws.rows)
((, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ),
(, , ))

or the Worksheet.columnsproperty: 또는 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']

좋은 웹페이지 즐겨찾기