Python을 사용하여 Excel 아티팩트 openpyxl을 작동하는 방법
Excel xlsx
xlsx는 Microsoft Excel에서 사용되는 개방형 XML 스프레드시트 파일 형식의 파일 확장자입니다. xlsm 파일은 매크로를 지원합니다. xlsx는 독점 바이너리 형식인 반면 xlsx는 Office Open XML 형식을 기반으로 합니다.
$ sudo pip3 install openpyxl
우리는 openpyxl
을 설치하기 위해 pip3
도구를 사용합니다. pip3
工具安装openpyxl
。
Openpyxl 创建新文件
在第一个示例中,我们使用openpyxl
创建一个新的 xlsx 文件。
write_xlsx.py
#!/usr/bin/env python from openpyxl import Workbook import time book = Workbook() sheet = book.active sheet['A1'] = 56 sheet['A2'] = 43 now = time.strftime("%x") sheet['A3'] = now book.save("sample.xlsx")
在示例中,我们创建一个新的 xlsx 文件。 我们将数据写入三个单元格。
from openpyxl import Workbook
从openpyxl
模块,我们导入Workbook
类。 工作簿是文档所有其他部分的容器。
book = Workbook()
我们创建一个新的工作簿。 始终使用至少一个工作表创建一个工作簿。
sheet = book.active
我们获得对活动工作表的引用。
sheet['A1'] = 56 sheet['A2'] = 43
我们将数值数据写入单元格 A1 和 A2。
now = time.strftime("%x") sheet['A3'] = now
我们将当前日期写入单元格 A3。
book.save("sample.xlsx")
我们使用save()
方法将内容写入sample.xlsx
文件。
Openpyxl 写入单元格
写入单元格有两种基本方法:使用工作表的键(例如 A1 或 D3),或通过cell()
方法使用行和列表示法。
write2cell.py
#!/usr/bin/env python from openpyxl import Workbook book = Workbook() sheet = book.active sheet['A1'] = 1 sheet.cell(row=2, column=2).value = 2 book.save('write2cell.xlsx')
在示例中,我们将两个值写入两个单元格。
sheet['A1'] = 1
在这里,我们将数值分配给 A1 单元。
sheet.cell(row=2, column=2).value = 2
在这一行中,我们用行和列表示法写入单元格 B2。
Openpyxl 附加值
使用append()
方法,我们可以在当前工作表的底部附加一组值。
appending_values.py
#!/usr/bin/env python from openpyxl import Workbook book = Workbook() sheet = book.active rows = ( (88, 46, 57), (89, 38, 12), (23, 59, 78), (56, 21, 98), (24, 18, 43), (34, 15, 67) ) for row in rows: sheet.append(row) book.save('appending.xlsx')
在示例中,我们将三列数据附加到当前工作表中。
rows = ( (88, 46, 57), (89, 38, 12), (23, 59, 78), (56, 21, 98), (24, 18, 43), (34, 15, 67) )
数据存储在元组的元组中。
for row in rows: sheet.append(row)
我们逐行浏览容器,并使用append()
方法插入数据行。
OpenPyXL 读取单元格
在下面的示例中,我们从sample.xlsx
文件中读取先前写入的数据。
read_cells.py
#!/usr/bin/env python import openpyxl book = openpyxl.load_workbook('sample.xlsx') sheet = book.active a1 = sheet['A1'] a2 = sheet['A2'] a3 = sheet.cell(row=3, column=1) print(a1.value) print(a2.value) print(a3.value)
该示例加载一个现有的 xlsx 文件并读取三个单元格。
book = openpyxl.load_workbook('sample.xlsx')
使用load_workbook()
方法打开文件。
a1 = sheet['A1'] a2 = sheet['A2'] a3 = sheet.cell(row=3, column=1)
我们读取 A1,A2 和 A3 单元的内容。 在第三行中,我们使用cell()
方法获取 A3 单元格的值。
$ ./read_cells.py 56 43 10/26/16
这是示例的输出。
OpenPyXL 读取多个单元格
我们有以下数据表:
我们使用范围运算符读取数据。
read_cells2.py
#!/usr/bin/env python import openpyxl book = openpyxl.load_workbook('items.xlsx') sheet = book.active cells = sheet['A1': 'B6'] for c1, c2 in cells: print("{0:8} {1:8}".format(c1.value, c2.value))
在示例中,我们使用范围运算从两列读取数据。
cells = sheet['A1': 'B6']
在这一行中,我们从单元格 A1-B6 中读取数据。
for c1, c2 in cells: print("{0:8} {1:8}".format(c1.value, c2.value))
format()
功能用于在控制台上整洁地输出数据。
$ ./read_cells2.py Items Quantity coins 23 chairs 3 pencils 5 bottles 8 books 30
Openpyxl 按行迭代
iter_rows()
方法将工作表中的单元格返回为行。
iterating_by_rows.py
#!/usr/bin/env python from openpyxl import Workbook book = Workbook() sheet = book.active rows = ( (88, 46, 57), (89, 38, 12), (23, 59, 78), (56, 21, 98), (24, 18, 43), (34, 15, 67) ) for row in rows: sheet.append(row) for row in sheet.iter_rows(min_row=1, min_col=1, max_row=6, max_col=3): for cell in row: print(cell.value, end=" ") print() book.save('iterbyrows.xlsx')
该示例逐行遍历数据。
for row in sheet.iter_rows(min_row=1, min_col=1, max_row=6, max_col=3):
我们提供了迭代的边界。
$ ./iterating_by_rows.py 88 46 57 89 38 12 23 59 78 56 21 98 24 18 43 34 15 67
Openpyxl 按列迭代
iter_cols()
方法将工作表中的单元格作为列返回。
iterating_by_columns.py
#!/usr/bin/env python from openpyxl import Workbook book = Workbook() sheet = book.active rows = ( (88, 46, 57), (89, 38, 12), (23, 59, 78), (56, 21, 98), (24, 18, 43), (34, 15, 67) ) for row in rows: sheet.append(row) for row in sheet.iter_cols(min_row=1, min_col=1, max_row=6, max_col=3): for cell in row: print(cell.value, end=" ") print() book.save('iterbycols.xlsx')
该示例逐列遍历数据。
$ ./iterating_by_columns.py 88 89 23 56 24 34 46 38 59 21 18 15 57 12 78 98 43 67
统计
对于下一个示例,我们需要创建一个包含数字的 xlsx 文件。 例如,我们使用RANDBETWEEN()
函数在 10 列中创建了 25 行数字。
mystats.py
#!/usr/bin/env python import openpyxl import statistics as stats book = openpyxl.load_workbook('numbers.xlsx', data_only=True) sheet = book.active rows = sheet.rows values = [] for row in rows: for cell in row: values.append(cell.value) print("Number of values: {0}".format(len(values))) print("Sum of values: {0}".format(sum(values))) print("Minimum value: {0}".format(min(values))) print("Maximum value: {0}".format(max(values))) print("Mean: {0}".format(stats.mean(values))) print("Median: {0}".format(stats.median(values))) print("Standard deviation: {0}".format(stats.stdev(values))) print("Variance: {0}".format(stats.variance(values)))
在示例中,我们从工作表中读取所有值并计算一些基本统计信息。
import statistics as stats
导入statistics
模块以提供一些统计功能,例如中值和方差。
book = openpyxl.load_workbook('numbers.xlsx', data_only=True)
使用data_only
选项,我们从单元格而不是公式中获取值。
rows = sheet.rows
我们得到所有不为空的单元格行。
for row in rows: for cell in row: values.append(cell.value)
在两个 for 循环中,我们从单元格中形成一个整数值列表。
print("Number of values: {0}".format(len(values))) print("Sum of values: {0}".format(sum(values))) print("Minimum value: {0}".format(min(values))) print("Maximum value: {0}".format(max(values))) print("Mean: {0}".format(stats.mean(values))) print("Median: {0}".format(stats.median(values))) print("Standard deviation: {0}".format(stats.stdev(values))) print("Variance: {0}".format(stats.variance(values)))
我们计算并打印有关值的数学统计信息。 一些功能是内置的,其他功能是通过statistics
模块导入的。
$ ./mystats.py Number of values: 312 Sum of values: 15877 Minimum value: 0 Maximum value: 100 Mean: 50.88782051282051 Median: 54.0 Standard deviation: 28.459203819700967 Variance: 809.9262820512821
Openpyxl 过滤器&排序数据
图纸具有auto_filter
属性,该属性允许设置过滤条件和排序条件。
请注意,Openpyxl 设置了条件,但是我们必须在电子表格应用中应用它们。
filter_sort.py
#!/usr/bin/env python from openpyxl import Workbook wb = Workbook() sheet = wb.active data = [ ['Item', 'Colour'], ['pen', 'brown'], ['book', 'black'], ['plate', 'white'], ['chair', 'brown'], ['coin', 'gold'], ['bed', 'brown'], ['notebook', 'white'], ] for r in data: sheet.append(r) sheet.auto_filter.ref = 'A1:B8' sheet.auto_filter.add_filter_column(1, ['brown', 'white']) sheet.auto_filter.add_sort_condition('B2:B8') wb.save('filtered.xlsx')
在示例中,我们创建一个包含项目及其颜色的工作表。 我们设置一个过滤器和一个排序条件。
Openpyxl 维度
为了获得那些实际包含数据的单元格,我们可以使用维度。
dimensions.py
#!/usr/bin/env python from openpyxl import Workbook book = Workbook() sheet = book.active sheet['A3'] = 39 sheet['B3'] = 19 rows = [ (88, 46), (89, 38), (23, 59), (56, 21), (24, 18), (34, 15) ] for row in rows: sheet.append(row) print(sheet.dimensions) print("Minimum row: {0}".format(sheet.min_row)) print("Maximum row: {0}".format(sheet.max_row)) print("Minimum column: {0}".format(sheet.min_column)) print("Maximum column: {0}".format(sheet.max_column)) for c1, c2 in sheet[sheet.dimensions]: print(c1.value, c2.value) book.save('dimensions.xlsx')
该示例计算两列数据的维数。
sheet['A3'] = 39 sheet['B3'] = 19 rows = [ (88, 46), (89, 38), (23, 59), (56, 21), (24, 18), (34, 15) ] for row in rows: sheet.append(row)
我们将数据添加到工作表。 请注意,我们从第三行开始添加。
print(sheet.dimensions)
dimensions
属性返回非空单元格区域的左上角和右下角单元格。
print("Minimum row: {0}".format(sheet.min_row)) print("Maximum row: {0}".format(sheet.max_row))
使用min_row
和max_row
openpyxl
을 사용하여 새 xlsx 파일을 만듭니다. 🎜🎜write_xlsx.py
🎜print("Minimum column: {0}".format(sheet.min_column)) print("Maximum column: {0}".format(sheet.max_column))
for c1, c2 in sheet[sheet.dimensions]: print(c1.value, c2.value)
openpyxl
모듈에서 Workbook
클래스를 가져옵니다. 통합 문서는 문서의 다른 모든 부분을 담는 컨테이너입니다. 🎜$ ./dimensions.py A3:B9 Minimum row: 3 Maximum row: 9 Minimum column: 1 Maximum column: 2 39 19 88 46 89 38 23 59 56 21 24 18 34 15
#!/usr/bin/env python import openpyxl book = openpyxl.load_workbook('sheets.xlsx') print(book.get_sheet_names()) active_sheet = book.active print(type(active_sheet)) sheet = book.get_sheet_by_name("March") print(sheet.title)
print(book.get_sheet_names())
active_sheet = book.active print(type(active_sheet))
sheet = book.get_sheet_by_name("March")
save()
메서드를 사용하여 sample.xlsx
파일에 콘텐츠를 씁니다. 🎜🎜Openpyxl 셀에 쓰기 🎜🎜셀에 쓰는 기본 방법에는 두 가지가 있습니다. 워크시트의 키(예: A1 또는 D3)를 사용하거나 cell()
을 통해 행 및 열 표기법을 사용하는 것입니다. 방법 . 🎜🎜write2cell.py🎜print(sheet.title)
$ ./sheets.py ['January', 'February', 'March'] <class 'openpyxl.worksheet.worksheet.Worksheet'> March
#!/usr/bin/env python import openpyxl book = openpyxl.load_workbook('sheets.xlsx') book.create_sheet("April") print(book.sheetnames) sheet1 = book.get_sheet_by_name("January") book.remove_sheet(sheet1) print(book.sheetnames) book.create_sheet("January", 0) print(book.sheetnames) book.save('sheets2.xlsx')
append()
메서드를 사용하면 현재 워크시트 하단에 일련의 값을 추가할 수 있습니다. 🎜🎜appending_values.py🎜book.create_sheet("April")
print(book.sheetnames)
book.remove_sheet(sheet1)
append()
메서드를 사용하여 데이터 행을 삽입합니다. 🎜🎜OpenPyXL 읽기 셀🎜🎜아래 예에서는 sample.xlsx
파일에서 이전에 작성된 데이터를 읽습니다. 🎜🎜read_cells.py🎜book.create_sheet("January", 0)
$ ./sheets2.py ['January', 'February', 'March', 'April'] ['February', 'March', 'April'] ['January', 'February', 'March', 'April']
load_workbook()
메서드를 사용하세요. 🎜#!/usr/bin/env python import openpyxl book = openpyxl.load_workbook('sheets.xlsx') sheet = book.get_sheet_by_name("March") sheet.sheet_properties.tabColor = "0072BA" book.save('sheets3.xlsx')
cell()
메서드를 사용하여 셀 A3의 값을 가져옵니다. 🎜sheet.sheet_properties.tabColor = "0072BA"
#!/usr/bin/env python from openpyxl import Workbook from openpyxl.styles import Alignment book = Workbook() sheet = book.active sheet.merge_cells('A1:B2') cell = sheet.cell(row=1, column=1) cell.value = 'Sunny day' cell.alignment = Alignment(horizontal='center', vertical='center') book.save('merging.xlsx')
from openpyxl.styles import Alignment
sheet.merge_cells('A1:B2')
format()
함수는 콘솔에 데이터를 깔끔하게 출력하는데 사용됩니다. 🎜cell = sheet.cell(row=1, column=1)
iter_rows()
메서드는 워크시트의 셀을 행으로 반환합니다. 🎜🎜iteracing_by_rows.py🎜cell.value = 'Sunny day' cell.alignment = Alignment(horizontal='center', vertical='center')
#!/usr/bin/env python from openpyxl import Workbook from openpyxl.styles import Alignment book = Workbook() sheet = book.active sheet.freeze_panes = 'B2' book.save('freezing.xlsx')
sheet.freeze_panes = 'B2'
iter_cols()
메서드는 워크시트의 셀을 열로 반환합니다. 🎜🎜iteracing_by_columns.py🎜#!/usr/bin/env python from openpyxl import Workbook book = Workbook() sheet = book.active rows = ( (34, 26), (88, 36), (24, 29), (15, 22), (56, 13), (76, 18) ) for row in rows: sheet.append(row) cell = sheet.cell(row=7, column=2) cell.value = "=SUM(A1:B6)" cell.font = cell.font.copy(bold=True) book.save('formulas.xlsx')
rows = ( (34, 26), (88, 36), (24, 29), (15, 22), (56, 13), (76, 18) ) for row in rows: sheet.append(row)
RANDBETWEEN()
함수를 사용하여 10개 열에 25개 행의 숫자를 생성했습니다. 🎜🎜mystats.py🎜cell = sheet.cell(row=7, column=2)
cell.value = "=SUM(A1:B6)"
통계
모듈을 가져와서 중앙값 및 분산과 같은 일부 통계 함수를 제공하세요. 🎜cell.font = cell.font.copy(bold=True)
data_only
옵션을 사용하면 수식 대신 셀에서 값을 가져옵니다. 🎜#!/usr/bin/env python from openpyxl import Workbook from openpyxl.drawing.image import Image book = Workbook() sheet = book.active img = Image("icesid.png") sheet['A1'] = 'This is Sid' sheet.add_image(img, 'B2') book.save("sheet_image.xlsx")
from openpyxl.drawing.image import Image
img = Image("icesid.png")
통계
모듈을 통해 가져옵니다. 🎜sheet.add_image(img, 'B2')
auto_filter
속성이 있습니다. 🎜🎜Openpyxl에서는 조건을 설정하지만 스프레드시트 애플리케이션에서는 이를 적용해야 합니다. 🎜🎜filter_sort.py🎜#!/usr/bin/env python from openpyxl import Workbook from openpyxl.chart import ( Reference, Series, BarChart ) book = Workbook() sheet = book.active rows = [ ("USA", 46), ("China", 38), ("UK", 29), ("Russia", 22), ("South Korea", 13), ("Germany", 11) ] for row in rows: sheet.append(row) data = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=6) categs = Reference(sheet, min_col=1, min_row=1, max_row=6) chart = BarChart() chart.add_data(data=data) chart.set_categories(categs) chart.legend = None chart.y_axis.majorGridlines = None chart.varyColors = True chart.title = "Olympic Gold medals in London" sheet.add_chart(chart, "A8") book.save("bar_chart.xlsx")
from openpyxl.chart import ( Reference, Series, BarChart )
book = Workbook() sheet = book.active
rows = [ ("USA", 46), ("China", 38), ("UK", 29), ("Russia", 22), ("South Korea", 13), ("Germany", 11) ] for row in rows: sheet.append(row)
dimensions
속성은 비어 있지 않은 셀 범위의 왼쪽 위 셀과 오른쪽 아래 셀을 반환합니다. 🎜data = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=6)
min_row
및 max_row
속성을 사용하면 데이터가 포함된 최소 및 최대 행을 얻을 수 있습니다. 🎜print("Minimum column: {0}".format(sheet.min_column)) print("Maximum column: {0}".format(sheet.max_column))
通过min_column
和max_column
属性,我们获得了包含数据的最小和最大列。
for c1, c2 in sheet[sheet.dimensions]: print(c1.value, c2.value)
我们遍历数据并将其打印到控制台。
$ ./dimensions.py A3:B9 Minimum row: 3 Maximum row: 9 Minimum column: 1 Maximum column: 2 39 19 88 46 89 38 23 59 56 21 24 18 34 15
工作表
每个工作簿可以有多个工作表。
Figure: Sheets
让我们有一张包含这三张纸的工作簿。
sheets.py
#!/usr/bin/env python import openpyxl book = openpyxl.load_workbook('sheets.xlsx') print(book.get_sheet_names()) active_sheet = book.active print(type(active_sheet)) sheet = book.get_sheet_by_name("March") print(sheet.title)
该程序可用于 Excel 工作表。
print(book.get_sheet_names())
get_sheet_names()
方法返回工作簿中可用工作表的名称。
active_sheet = book.active print(type(active_sheet))
我们获取活动表并将其类型打印到终端。
sheet = book.get_sheet_by_name("March")
我们使用get_sheet_by_name()
方法获得对工作表的引用。
print(sheet.title)
检索到的工作表的标题将打印到终端。
$ ./sheets.py ['January', 'February', 'March'] <class 'openpyxl.worksheet.worksheet.Worksheet'> March
这是程序的输出。
sheets2.py
#!/usr/bin/env python import openpyxl book = openpyxl.load_workbook('sheets.xlsx') book.create_sheet("April") print(book.sheetnames) sheet1 = book.get_sheet_by_name("January") book.remove_sheet(sheet1) print(book.sheetnames) book.create_sheet("January", 0) print(book.sheetnames) book.save('sheets2.xlsx')
在此示例中,我们创建一个新工作表。
book.create_sheet("April")
使用create_sheet()
方法创建一个新图纸。
print(book.sheetnames)
图纸名称也可以使用sheetnames
属性显示。
book.remove_sheet(sheet1)
可以使用remove_sheet()
方法将纸张取出。
book.create_sheet("January", 0)
可以在指定位置创建一个新图纸。 在我们的例子中,我们在索引为 0 的位置创建一个新工作表。
$ ./sheets2.py ['January', 'February', 'March', 'April'] ['February', 'March', 'April'] ['January', 'February', 'March', 'April']
可以更改工作表的背景颜色。
sheets3.py
#!/usr/bin/env python import openpyxl book = openpyxl.load_workbook('sheets.xlsx') sheet = book.get_sheet_by_name("March") sheet.sheet_properties.tabColor = "0072BA" book.save('sheets3.xlsx')
该示例修改了标题为“ March”的工作表的背景颜色。
sheet.sheet_properties.tabColor = "0072BA"
我们将tabColor
属性更改为新颜色。
第三工作表的背景色已更改为某种蓝色。
合并单元格
单元格可以使用merge_cells()
方法合并,而可以不使用unmerge_cells()
方法合并。 当我们合并单元格时,除了左上角的所有单元格都将从工作表中删除。
merging_cells.py
#!/usr/bin/env python from openpyxl import Workbook from openpyxl.styles import Alignment book = Workbook() sheet = book.active sheet.merge_cells('A1:B2') cell = sheet.cell(row=1, column=1) cell.value = 'Sunny day' cell.alignment = Alignment(horizontal='center', vertical='center') book.save('merging.xlsx')
在该示例中,我们合并了四个单元格:A1,B1,A2 和 B2。 最后一个单元格中的文本居中。
from openpyxl.styles import Alignment
为了使文本在最后一个单元格中居中,我们使用了openpyxl.styles
模块中的Alignment
类。
sheet.merge_cells('A1:B2')
我们用merge_cells()
方法合并四个单元格。
cell = sheet.cell(row=1, column=1)
我们得到了最后一个单元格。
cell.value = 'Sunny day' cell.alignment = Alignment(horizontal='center', vertical='center')
我们将文本设置为合并的单元格并更新其对齐方式。
Openpyxl 冻结窗格
冻结窗格时,在滚动到工作表的另一个区域时,我们会保持工作表的某个区域可见。
freezing.py
#!/usr/bin/env python from openpyxl import Workbook from openpyxl.styles import Alignment book = Workbook() sheet = book.active sheet.freeze_panes = 'B2' book.save('freezing.xlsx')
该示例通过单元格 B2 冻结窗格。
sheet.freeze_panes = 'B2'
要冻结窗格,我们使用freeze_panes
属性。
Openpyxl 公式
下一个示例显示如何使用公式。 openpyxl
不进行计算; 它将公式写入单元格。
formulas.py
#!/usr/bin/env python from openpyxl import Workbook book = Workbook() sheet = book.active rows = ( (34, 26), (88, 36), (24, 29), (15, 22), (56, 13), (76, 18) ) for row in rows: sheet.append(row) cell = sheet.cell(row=7, column=2) cell.value = "=SUM(A1:B6)" cell.font = cell.font.copy(bold=True) book.save('formulas.xlsx')
在示例中,我们使用SUM()
函数计算所有值的总和,并以粗体显示输出样式。
rows = ( (34, 26), (88, 36), (24, 29), (15, 22), (56, 13), (76, 18) ) for row in rows: sheet.append(row)
我们创建两列数据。
cell = sheet.cell(row=7, column=2)
我们得到显示计算结果的单元格。
cell.value = "=SUM(A1:B6)"
我们将一个公式写入单元格。
cell.font = cell.font.copy(bold=True)
我们更改字体样式。
OpenPyXL 图像
在下面的示例中,我们显示了如何将图像插入到工作表中。
write_image.py
#!/usr/bin/env python from openpyxl import Workbook from openpyxl.drawing.image import Image book = Workbook() sheet = book.active img = Image("icesid.png") sheet['A1'] = 'This is Sid' sheet.add_image(img, 'B2') book.save("sheet_image.xlsx")
在示例中,我们将图像写到一张纸上。
from openpyxl.drawing.image import Image
我们使用openpyxl.drawing.image
模块中的Image
类。
img = Image("icesid.png")
创建一个新的Image
类。 icesid.png
图像位于当前工作目录中。
sheet.add_image(img, 'B2')
我们使用add_image()
方法添加新图像。
Openpyxl 图表
openpyxl
库支持创建各种图表,包括条形图,折线图,面积图,气泡图,散点图和饼图。
根据文档,openpyxl
仅支持在工作表中创建图表。 现有工作簿中的图表将丢失。
create_bar_chart.py
#!/usr/bin/env python from openpyxl import Workbook from openpyxl.chart import ( Reference, Series, BarChart ) book = Workbook() sheet = book.active rows = [ ("USA", 46), ("China", 38), ("UK", 29), ("Russia", 22), ("South Korea", 13), ("Germany", 11) ] for row in rows: sheet.append(row) data = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=6) categs = Reference(sheet, min_col=1, min_row=1, max_row=6) chart = BarChart() chart.add_data(data=data) chart.set_categories(categs) chart.legend = None chart.y_axis.majorGridlines = None chart.varyColors = True chart.title = "Olympic Gold medals in London" sheet.add_chart(chart, "A8") book.save("bar_chart.xlsx")
在此示例中,我们创建了一个条形图,以显示 2012 年伦敦每个国家/地区的奥运金牌数量。
from openpyxl.chart import ( Reference, Series, BarChart )
openpyxl.chart
模块具有使用图表的工具。
book = Workbook() sheet = book.active
创建一个新的工作簿。
rows = [ ("USA", 46), ("China", 38), ("UK", 29), ("Russia", 22), ("South Korea", 13), ("Germany", 11) ] for row in rows: sheet.append(row)
我们创建一些数据并将其添加到活动工作表的单元格中。
data = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=6)
对于Reference
类,我们引用表中代表数据的行。 在我们的案例中,这些是奥运金牌的数量。
categs = Reference(sheet, min_col=1, min_row=1, max_row=6)
我们创建一个类别轴。 类别轴是将数据视为一系列非数字文本标签的轴。 在我们的案例中,我们有代表国家名称的文本标签。
chart = BarChart() chart.add_data(data=data) chart.set_categories(categs)
我们创建一个条形图并为其设置数据和类别。
chart.legend = None chart.y_axis.majorGridlines = None
使用legend
和majorGridlines
属性,可以关闭图例和主要网格线。
chart.varyColors = True
将varyColors
设置为True
,每个条形都有不同的颜色。
chart.title = "Olympic Gold medals in London"
为图表设置标题。
sheet.add_chart(chart, "A8")
使用add_chart()
方法将创建的图表添加到工作表中。
이 튜토리얼에서는 openpyxl 라이브러리를 사용했습니다. Excel 파일에서 데이터를 읽고 Excel 파일에 데이터를 썼습니다.
위 내용은 Python을 사용하여 Excel 아티팩트 openpyxl을 작동하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

PHP는 웹 개발 및 빠른 프로토 타이핑에 적합하며 Python은 데이터 과학 및 기계 학습에 적합합니다. 1.PHP는 간단한 구문과 함께 동적 웹 개발에 사용되며 빠른 개발에 적합합니다. 2. Python은 간결한 구문을 가지고 있으며 여러 분야에 적합하며 강력한 라이브러리 생태계가 있습니다.

VS 코드는 파이썬을 작성하는 데 사용될 수 있으며 파이썬 애플리케이션을 개발하기에 이상적인 도구가되는 많은 기능을 제공합니다. 사용자는 다음을 수행 할 수 있습니다. Python 확장 기능을 설치하여 코드 완료, 구문 강조 및 디버깅과 같은 기능을 얻습니다. 디버거를 사용하여 코드를 단계별로 추적하고 오류를 찾아 수정하십시오. 버전 제어를 위해 git을 통합합니다. 코드 서식 도구를 사용하여 코드 일관성을 유지하십시오. 라인 도구를 사용하여 잠재적 인 문제를 미리 발견하십시오.

Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.

VS 코드는 Windows 8에서 실행될 수 있지만 경험은 크지 않을 수 있습니다. 먼저 시스템이 최신 패치로 업데이트되었는지 확인한 다음 시스템 아키텍처와 일치하는 VS 코드 설치 패키지를 다운로드하여 프롬프트대로 설치하십시오. 설치 후 일부 확장은 Windows 8과 호환되지 않을 수 있으며 대체 확장을 찾거나 가상 시스템에서 새로운 Windows 시스템을 사용해야합니다. 필요한 연장을 설치하여 제대로 작동하는지 확인하십시오. Windows 8에서는 VS 코드가 가능하지만 더 나은 개발 경험과 보안을 위해 새로운 Windows 시스템으로 업그레이드하는 것이 좋습니다.

PHP는 1994 년에 시작되었으며 Rasmuslerdorf에 의해 개발되었습니다. 원래 웹 사이트 방문자를 추적하는 데 사용되었으며 점차 서버 측 스크립팅 언어로 진화했으며 웹 개발에 널리 사용되었습니다. Python은 1980 년대 후반 Guidovan Rossum에 의해 개발되었으며 1991 년에 처음 출시되었습니다. 코드 가독성과 단순성을 강조하며 과학 컴퓨팅, 데이터 분석 및 기타 분야에 적합합니다.

vs 코드에서는 다음 단계를 통해 터미널에서 프로그램을 실행할 수 있습니다. 코드를 준비하고 통합 터미널을 열어 코드 디렉토리가 터미널 작업 디렉토리와 일치하는지 확인하십시오. 프로그래밍 언어 (예 : Python의 Python Your_file_name.py)에 따라 실행 명령을 선택하여 성공적으로 실행되는지 여부를 확인하고 오류를 해결하십시오. 디버거를 사용하여 디버깅 효율을 향상시킵니다.

VS 코드 확장은 악의적 인 코드 숨기기, 취약성 악용 및 합법적 인 확장으로 자위하는 등 악성 위험을 초래합니다. 악의적 인 확장을 식별하는 방법에는 게시자 확인, 주석 읽기, 코드 확인 및주의해서 설치가 포함됩니다. 보안 조치에는 보안 인식, 좋은 습관, 정기적 인 업데이트 및 바이러스 백신 소프트웨어도 포함됩니다.
