Pythonのexcelに対する基本的な操作方法
1.はじめに
本論文は、Excel 2010をサポートするxlsx/xlsm/xltx/xltmフォーマットファイルであるPythonのサードパーティライブラリ
オンラインで城を攻略するライオンとして、pythonのエクセルに対する基本的な操作技能を使えばいいです。もちろんもっと上手になることができます。
来て、まず下の図のように、これはすべてのネットワークデバイスを保存する管理アドレステーブルです。pythonの
2.実験環境 windown 10 Python 3.69 Pycharm Python第三者ライブラリ エクセル2013 説明:各実験環境は自由に組み合わせてください。pythonバージョンは3.x以上です。
3.基本操作
これから、一歩ずつ教えていきます。どうやって操作すればいいですか?
3.1 openpyxl第三者ライブラリのインストール
C:\>pip install openpyxl
3.2新しいブックを作成する
3.2.1ブックの新規作成
3.2.2デフォルトシート
3.2.3シートの作成属性title:シートの名前です。 メソッドcreate_sheet:新しいシートを作成します。indexはシートの順序索引で、0は最初の表を表します。 方法のcopy_worksheet:シートのコピー; 方法save:ファイルを保存して生成し、実行するたびに同名のファイルを上書きします。 3.2.4シートの削除
3.2.5シートの色を設定する
属性tabColor:シートの背景色を設定し、
効果は以下の通りです
3.2.6セル書込みデータ
シシシシ菗33846;は個々のデータを書き込む
apped:イテレーションオブジェクト(文字列、リスト、タプル...)に入ってきて、繰り返しセルに書き込みます。
効果は以下の通りです
3.2.7セルの背景色を設定する類Pattern Fill:start_カラー、end_カラーは背景色、図案色、図案様式である。 種類のBorder:線の幅、対角線などの外枠線スタイルを設定します。 種類のFont:フォントの色、サイズ、下線などを設定します。 クラスのAlignment:テキストの配置、水平配置、垂直配置を設定します。 効果は以下の通りです
3.2.8セルの結合 merge_セルを結合する unmerge_セルの結合をキャンセルします。 。
3.2.9列のセルの幅を自動的に調整する
最初に列のすべてのデータの最大長さを見つけて、この長さによってセルの幅を自動的に調整します。は、最初に空の辞書dimsを定義し、キーのペアを保存するために使用されます。 各列のセルvalue長さは1つずつ比較して最大値を取得し、最後に最も最大値を取得し、列ごとの幅値widthとします。 方法get_コロムン.letter():cell.com lumnの整数値1、2、3…を列文字列'A'、'B'、'C'に変換することです。 方法column_dimensions:widthで列の幅を設定します。もうちょっと大きくしてください。 効果は以下の通りです
3.2.10グラフ属性type:列colと水平バーの両方を設定できます。 属性style:スタイルを設定して、整数値の1~48の間です。 属性title:タイトルの設定; 属性x_axis.title:x軸のタイトル。 属性y_axis.title:y軸のタイトル。 類Reference:セル範囲のデータを参照する。 方法add_data:Y軸データ設定; 方法set_categories:X軸データの設定; 効果は以下の通りです
3.3ブックの読み込み
既に存在しているエクセルファイルを filename:ファイルパスまたはファイルオブジェクト。 read_only:読み取り専用かどうか、読書に対して最適化しました。内容は編集できません。 keep_vba:vba内を保留しますか? data_ONly:セルは数式または結果を保持しますか? keep_links:外部リンクを保留するかどうか、デフォルトで保留します。 3.3.1シートを取得するパラメータread_only=True: 方法sheetnames:リスト形式のシート名を返します。 方法close(): 3.3.2シートを巡回する
行を指定
方法iter_rows:この方法により、各行のデータを巡回することができ、
3.3.5巡回
列を指定
方法iter_cols:この方法により、各列のデータを巡回することができ、
付録openpyxl公式文書
openpyxl
RGB色参照
RGB色参照
ここでPythonのエクセルの基本操作についての文章を紹介します。Python excelの操作内容については以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。
ここでPythonのエクセルに対する基本的な操作方法についての文章を紹介します。Python excelの操作内容については以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。
本論文は、Excel 2010をサポートするxlsx/xlsm/xltx/xltmフォーマットファイルであるPythonのサードパーティライブラリ
openpyxl
により、どのバージョンのこれらのフォーマットもサポートできるはずである。オンラインで城を攻略するライオンとして、pythonのエクセルに対する基本的な操作技能を使えばいいです。もちろんもっと上手になることができます。
openpyxl
を使って何の効果がありますか?私は後でみんなと1篇の
の文章を共有したいので、中はexcelの操作に関連することができて、先にみんなにどのように基本的なexcelを操作するかを分かち合って、ついでに自分の知識を固めます。来て、まず下の図のように、これはすべてのネットワークデバイスを保存する管理アドレステーブルです。pythonの
openpyxl
ライブラリを通して、ipアドレス情報や巡回命令などの情報を読めば、大量にネットワークデバイスの配置をバックアップできます。以前はpythonでtxtテキストを結びました。不便だと思ったら、python結合excelの方式に変えます。エクセルを編集するととても便利です。2.実験環境
openpyxl
3.基本操作
これから、一歩ずつ教えていきます。どうやって操作すればいいですか?
3.1 openpyxl第三者ライブラリのインストール
C:\>pip install openpyxl
3.2新しいブックを作成する
3.2.1ブックの新規作成
from openpyxl import Workbook
#
wb = Workbook()
#
wb.save('simple_excel.xlsx')
説明:このコードを実行すると、エクセルファイルが作成されます。simple_excel.xlsx
、しばらくは内容がありません。3.2.2デフォルトシート
from openpyxl import Workbook
#
wb = Workbook()
# :sheet
ws1 = wb.active
# :1_sheet
ws1.title = '1_sheet'
#
wb.save('simple_excel.xlsx')
効果は以下の通りです。3.2.3シートの作成
from openpyxl import Workbook
#
wb = Workbook()
#
ws1 = wb.active
#
ws1.title = '1_sheet'
# 3
ws3 = wb.create_sheet(title='3_sheet', index=2)
# 2
ws2 = wb.create_sheet('2_sheet', 1)
# 4
ws4 = wb.copy_worksheet(ws3)
#
wb.save('simple_excel.xlsx')
パラメータの説明:
from openpyxl import Workbook
#
wb = Workbook()
#
# ... ...
ws4 = wb.copy_worksheet(ws3)
#
wb.remove(ws4)
#
wb.save('simple_excel.xlsx')
説明:このステップは運行しません。3.2.5シートの色を設定する
from openpyxl import Workbook
#
wb = Workbook()
# ... ...
#
ws1.sheet_properties.tabColor = '90EE90'
ws2.sheet_properties.tabColor = '1E90FF'
ws3.sheet_properties.tabColor = '90EE90'
ws4.sheet_properties.tabColor = '1E90FF'
#
wb.save('simple_excel.xlsx')
パラメータの説明:属性tabColor:シートの背景色を設定し、
RGB
色を使用できます。効果は以下の通りです
3.2.6セル書込みデータ
シシシシ菗33846;は個々のデータを書き込む
from openpyxl import Workbook
#
wb = Workbook()
# ... ...
#
# 1:
ws1['A1'] = ' :'
# 2:
ws1.cell(row=1, column=1, value=' :')
#
wb.save('simple_excel.xlsx')
一括書込みデータ
from openpyxl import Workbook
#
wb = Workbook()
# ... ...
#
data = [
["device_name", "device_ip", "vendor", "model", "sn", "os", "version", "update_time"],
['switch-01', "192.168.1.1", "cisco", 'WS-C3560G-24TS', "FOC00000000", "cisco_ios", "12.2(50)SE5", "1 weeks, 1 minutes" ],
['switch-02', "192.168.1.2", "cisco", 'WS-C3560G-24TS', "FOC00000000", "cisco_ios", "12.2(50)SE5", "1 weeks, 1 minutes" ],
['switch-03', "192.168.1.3", "cisco", 'WS-C3560G-24TS', "FOC00000000", "cisco_ios", "12.2(50)SE5", "1 weeks, 1 minutes" ],
]
for row in data:
ws1.append(row)
#
wb.save('simple_excel.xlsx')
パラメータの説明:apped:イテレーションオブジェクト(文字列、リスト、タプル...)に入ってきて、繰り返しセルに書き込みます。
効果は以下の通りです
3.2.7セルの背景色を設定する
from openpyxl import Workbook
from openpyxl.styles import PatternFill, Border, Side, Font, colors
#
wb = Workbook()
# ... ...
#
background_color = PatternFill(start_color='00BFFF', fill_type='solid')
#
border = Border(left=Side(style='thin'),
right=Side(style='thin'),
top=Side(style='thin'),
bottom=Side(style='thin'))
font_type = Font(color=colors.WHITE,
size=12,
b=True,
bold=True)
#
Align = Alignment(horizontal='center', vertical='center')
# cell
for row in ws1.iter_rows(min_row=2,max_row=2):
for cell in row:
cell.fill, cell.font, cell.alignment = background_color, font_type, Align
パラメータの説明:3.2.8セルの結合
# ... ...
#
ws1.merge_cells('A1:H1')
ws1.unmerge_cells('A1:H1')
# ... ...
パラメータの説明:3.2.9列のセルの幅を自動的に調整する
from openpyxl import Workbook
from openpyxl.styles import PatternFill, Border, Side, Font, colors,Alignment
from openpyxl.utils import get_column_letter
#
wb = Workbook()
# ... ...
#
# cell , 。
all_ws = wb.sheetnames
for ws in all_ws:
dims = {}
ws = wb[ws]
for row in ws.rows:
for cell in row:
if cell.value:
dims[cell.column] = max(dims.get(cell.column, 0), len(str(cell.value)))
for col, value in dims.items():
ws.column_dimensions[get_column_letter(col)].width = value + 3
dims.clear()
考え方の解読:最初に列のすべてのデータの最大長さを見つけて、この長さによってセルの幅を自動的に調整します。
3.2.10グラフ
from openpyxl.chart import BarChart3D, Reference
# ... ...
#
data = [
["Fruit", "2017", "2018", "2019", "2020"],
['Apples', 10000, 5000, 8000, 6000],
['Pears', 2000, 3000, 4000, 5000],
['Bananas', 6000, 6000, 6500, 6000],
['Oranges', 500, 300, 200, 700],
]
for row in data:
ws2.append(row)
# 3D
chart = BarChart3D()
chart.type = 'col'
chart.style = 10
chart.title = ' '
chart.x_axis.title = ' '
chart.y_axis.title = ' '
# set_categories() X , add_data() y
data = Reference(ws2, min_col=2, min_row=1, max_col=5, max_row=5)
series = Reference(ws2, min_col=1, min_row=2, max_row=5)
chart.add_data(data=data, titles_from_data=True)
chart.set_categories(series)
ws2.add_chart(chart, 'A7')
パラメータの説明:3.3ブックの読み込み
既に存在しているエクセルファイルを
load_workbook
方法でロードし、read_only
読み取り専用でコンテンツを読み込んで編集できません。load_workbook
方法パラメータ:
from openpyxl import load_workbook as open
#
wb = open('simple_excel.xlsx', read_only=True)
#
print(' : ', wb.sheetnames)
#
wb.close()
# :
: ['1_sheet', '2_sheet', '3_sheet', '3_sheet Copy']
パラメータの説明:
モードでブックを開くことを表します。read-only
とwrite-only
モードでのみ使用すればよく、以下同様であるため、何度も説明しない。
from openpyxl import load_workbook as open
#
wb = open('simple_excel.xlsx', read_only=True)
#
print(' 1 :', wb.sheetnames[0])
print(' 2 :', wb.sheetnames[1])
print(' 3 :', wb.sheetnames[2])
print(' 4 :', wb.sheetnames[3])
#
for ws in wb.sheetnames:
print(ws)
#
wb.close()
# :
1 : 1_sheet
2 : 2_sheet
3 : 3_sheet
4 : 3_sheet Copy
1_sheet
2_sheet
3_sheet
3_sheet Copy
3.3.3セルのデータを取得する
from openpyxl import load_workbook as open
#
wb = open('simple_excel.xlsx', read_only=True)
#
ws1 = wb[wb.sheetnames[0]]
#
# ws1 = wb['1_sheet']
#
print(f" : {ws1['A3'].value}")
#
for row in ws1['A3:H3']:
for cell in row:
print(f" : {cell.value}")
#
wb.close()
# :
: switch-01
: switch-01
: 192.168.1.1
: cisco
: WS-C3560G-24TS
: FOC00000000
: cisco_ios
: 12.2(50)SE5
: 1 weeks, 1 minutes
3.3.4巡回行を指定
from openpyxl import load_workbook as open
#
wb = open('simple_excel.xlsx', read_only=True)
#
ws1 = wb[wb.sheetnames[0]]
#
for cell in ws1['2']:
print(cell.value)
#
wb.close()
# :
device_name
device_ip
vendor
model
sn
os
version
update_time
行の範囲を指定
# ... ...
#
for row in ws1['2:3']:
for cell in row:
print(cell.value)
# ... ...
# :
device_name
device_ip
vendor
model
sn
os
version
update_time
switch-01
192.168.1.1
cisco
WS-C3560G-24TS
FOC00000000
cisco_ios
12.2(50)SE5
1 weeks, 1 minutes
方法iter_ローソン、遍歴
from openpyxl import load_workbook as open
#
wb = open('simple_excel.xlsx', read_only=True)
#
ws1 = wb[wb.sheetnames[0]]
#
for row in ws1.iter_rows(min_row=2, max_row=2, min_col=1, max_col=8):
for cell in row:
print(f" :{cell.value}")
#
wb.close()
# :
:device_name
:device_ip
:vendor
:model
:sn
:os
:version
:update_time
パラメータの説明:方法iter_rows:この方法により、各行のデータを巡回することができ、
tuple
によって、セルデータを再び循環して.value
によって取得することができる。3.3.5巡回
列を指定
from openpyxl import load_workbook as open
#
wb = open('simple_excel.xlsx', read_only=True)
#
ws1 = wb[wb.sheetnames[0]]
#
for cell in ws1['A']:
print(cell.value)
#
wb.close()
# :
:
device_name
switch-01
switch-02
switch-03
列の範囲を指定
# ... ...
#
for col in ws1['A:B']:
for cell in col:
print(cell.value)
# ... ...
# :
:
device_name
switch-01
switch-02
switch-03
None
device_ip
192.168.1.1
192.168.1.2
192.168.1.3
方法iter_cols、巡回
from openpyxl import load_workbook as open
#
wb = open('simple_excel.xlsx')
#
ws1 = wb[wb.sheetnames[0]]
#
for col in ws1.iter_cols(min_row=3, max_row=5, min_col=1, max_col=1):
for cell in col:
print(f" :{cell.value}")
#
wb.close()
# :
:switch-01
:switch-02
:switch-03
パラメータの説明:方法iter_cols:この方法により、各列のデータを巡回することができ、
tuple
である。セルデータは再び.value
で取得でき、またiter_rows
とは異なる。workbookはread_only=True
を使用できません。付録openpyxl公式文書
openpyxl
RGB色参照
RGB色参照
ここでPythonのエクセルの基本操作についての文章を紹介します。Python excelの操作内容については以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。
ここでPythonのエクセルに対する基本的な操作方法についての文章を紹介します。Python excelの操作内容については以前の文章を検索したり、次の関連記事を見たりしてください。これからもよろしくお願いします。