Pythonのopenpyxlライブラリを使用してExcelを操作する
25168 ワード
文書ディレクトリ pip install openpyxlライブラリ のインストールを実行新規Excel、書き込みデータ 以下のコード例 Excelのデータを修正する セルの内容を変更 行削除、列削除 文字色、フォント、サイズ 背景色 挿入画像 Excel COMインタフェース pip install openpyxlを実行してライブラリをインストール
新しいExcel、データの書き込み
xlrdはExcelの内容のみを読み込むことができます.新しいExcelを作成してデータを書き込む場合はopenpyxlライブラリを使用します.
Openpyxlライブラリでは、ファイルを読むことも、ファイルを書くことも、ファイルを変更することもできます.
ただし、openpyxlライブラリでは、旧バージョンOffice 2003のxls形式のExcelドキュメントはサポートされていません.xls形式のドキュメントを読み書きする場合は、Excelを使用して対応するフォーマット変換を行うことができます.
次のコードではopenpyxlの基本的な使い方を示します.
次のサンプルコード
辞書に保存されている年齢表の内容をexcelファイルに書き込む
Excelのデータの変更
既存のExcelファイルを変更したい場合はopenpyxlライブラリを使用することもできます.
セルの内容の変更
たとえば
行の削除、列の削除
sheetオブジェクトのdelete_rowsとdelete_colsメソッドは、行と列を挿入するために使用されます.たとえば、
テキストの色、フォント、サイズ
セル内のスタイル(色、フォント、サイズ、下線など)はすべてFontオブジェクトによって設定されます.
背景色
画像を挿入
画像を挿入するコードです
Excel COMコネクタ
Windowsプラットフォームでは、ExcelアプリケーションのCOMインタフェースでExcelを操作することもできます.
この方法はPythonプログラムを使ってExcelアプリで自分で修正することに相当し、もちろん副作用はありません.
また、Excelの自動印刷やセルのマージなど、特殊な機能も実現できます.
Excel COMインタフェースを使用するには、まずpywin 32ライブラリをインストールし、コマンドラインウィンドウに次のコマンドを入力します.
例えばこのように修正することができます
実行してみると、Excelの内容も修正できます.
import os
os.system("pip3 install openpyxl")
新しいExcel、データの書き込み
xlrdはExcelの内容のみを読み込むことができます.新しいExcelを作成してデータを書き込む場合はopenpyxlライブラリを使用します.
Openpyxlライブラリでは、ファイルを読むことも、ファイルを書くことも、ファイルを変更することもできます.
ただし、openpyxlライブラリでは、旧バージョンOffice 2003のxls形式のExcelドキュメントはサポートされていません.xls形式のドキュメントを読み書きする場合は、Excelを使用して対応するフォーマット変換を行うことができます.
次のコードではopenpyxlの基本的な使い方を示します.
import openpyxl
# Excel workbook
book = openpyxl.Workbook()
# , sheet, active
sh = book.active
# sheet
sh.title = ' '
#
book.save(' .xlsx')
# ' ' sheet,
sh1 = book.create_sheet(' - ')
# sheet,
sh2 = book.create_sheet(' - ',0)
# sheet, 2
sh3 = book.create_sheet(' 2',1)
# sheet
sh = book[' ']
#
sh['A1'] = ' '
#
print(sh['A1'].value)
# , ,
# xlrd , 1
sh.cell(2,2).value = ' '
# ,
print(sh.cell(1, 1).value)
book.save(' .xlsx')
次のサンプルコード
辞書に保存されている年齢表の内容をexcelファイルに書き込む
import openpyxl
name2Age = {
' ' : 38,
' ' : 27,
' ' : 36,
' ' : 38,
' ' : 39,
' ' : 49,
' ' : 43,
' ' : 23,
}
# Excel workbook
book = openpyxl.Workbook()
# , sheet, active
sh = book.active
sh.title = ' '
#
sh['A1'] = ' '
sh['B1'] = ' '
#
row = 2
for name,age in name2Age.items():
sh.cell(row, 1).value = name
sh.cell(row, 2).value = age
row += 1
#
book.save(' .xlsx')
Excelのデータの変更
既存のExcelファイルを変更したい場合はopenpyxlライブラリを使用することもできます.
セルの内容の変更
たとえば
import openpyxl
# excel
wb = openpyxl.load_workbook('income.xlsx')
# sheet
sheet = wb['2017']
sheet['A1'] = ' '
# ,
wb.save('income-1.xlsx')
、
sheet insert_rows insert_cols , ,
import openpyxl
wb = openpyxl.load_workbook('income.xlsx')
sheet = wb['2018']
# 2 1
sheet.insert_rows(2)
# 3 3
sheet.insert_rows(3,3)
# 2 1
sheet.insert_cols(2)
# 2 3
sheet.insert_cols(2,3)
## ,
wb.save('income-1.xlsx')
行の削除、列の削除
sheetオブジェクトのdelete_rowsとdelete_colsメソッドは、行と列を挿入するために使用されます.たとえば、
import openpyxl
wb = openpyxl.load_workbook('income.xlsx')
sheet = wb['2018']
# 2 1
sheet.delete_rows(2)
# 3 3
sheet.delete_rows(3,3)
# 2 1
sheet.delete_cols(2)
# 3 3
sheet.delete_cols(3,3)
## ,
wb.save('income-1.xlsx')
テキストの色、フォント、サイズ
セル内のスタイル(色、フォント、サイズ、下線など)はすべてFontオブジェクトによって設定されます.
import openpyxl
# Font colors
from openpyxl.styles import Font,colors
wb = openpyxl.load_workbook('income.xlsx')
sheet = wb['2018']
# ,
sheet['A1'].font = Font(color=colors.RED, #
size=15, #
bold=True, #
italic=True, #
name=' ', #
underline='siingle' # )
# RGB
sheet['B1'].font = Font(color="981818")
# , 3
font = Font(color="981818")
for y in range(1, 100): # 1 100
sheet.cell(row=3, column=y).font = font
# , 2
font = Font(bold=True)
for x in range(1, 100): # 1 100
sheet.cell(row=x, column=2).font = font
wb.save('income-1.xlsx')
背景色
import openpyxl
# Font colors
from openpyxl.styles import PatternFill
wb = openpyxl.load_workbook('income.xlsx')
sheet = wb['2018']
#
sheet['A1'].fill = PatternFill("solid", "E39191")
# , 2
fill = PatternFill("solid", "E39191")
for y in range(1, 100): # 1 100
sheet.cell(row=2, column=y).fill = fill
wb.save('income-1.xlsx')
画像を挿入
画像を挿入するコードです
import openpyxl
from openpyxl.drawing.image import Image
wb = openpyxl.load_workbook('income.xlsx')
sheet = wb['2018']
# 1 , 4
sheet.add_image(Image('1.png'), 'D1')
## ,
wb.save('income-1.xlsx')
Excel COMコネクタ
Windowsプラットフォームでは、ExcelアプリケーションのCOMインタフェースでExcelを操作することもできます.
この方法はPythonプログラムを使ってExcelアプリで自分で修正することに相当し、もちろん副作用はありません.
また、Excelの自動印刷やセルのマージなど、特殊な機能も実現できます.
Excel COMインタフェースを使用するには、まずpywin 32ライブラリをインストールし、コマンドラインウィンドウに次のコマンドを入力します.
pip install pywin32
例えばこのように修正することができます
import win32com.client
excel = win32com.client.Dispatch("Excel.Application")
#excel.Visible = True # excel
# Excel
workbook = excel.Workbooks.Open(r"d:\tmp\income1.xlsx")
# 2017
sheet = workbook.Sheets('2017')
#
# om , 、 1
sheet.Cells(1,1).Value=" "
#
workbook.Save()
# Excel
workbook.Close()
#excel
excel.Quit()
#
sheet = None
book = None
excel.Quit()
excel = None
実行してみると、Excelの内容も修正できます.