Python が Excel を操作するためのいくつかの基本的なプログラム コード

以下は、Python を使用して Excel を操作する一般的な操作を示すサンプル コードです。

Excelを開いてブックを追加する

以下のスクリプト コードは、単純に Excel を呼び出し、ブックを追加し、空のブックを既定のフォルダーに保存します。


import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
wb.SaveAs('sample.xlsx')
excel.Application.Quit()

既存のブックを開く

次のスクリプト コードは、既存のブックを開き、excel.Visible=True を指定して表示します。


import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(r'C:\Users\excelperfect\Documents\sample.xlsx')
excel.Visible = True

ワークシートを追加

次のスクリプト コードは、新しいワークブックを作成し、新しいワークシートを追加して、MyNewSheet という名前を付け、既定のフォルダーに保存します。


import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets.Add()
ws.Name = "MyNewSheet"
wb.SaveAs('new_sample.xlsx')
excel.Application.Quit()

セルの範囲とオフセット

次のスクリプト コードは、cells() および Range() 演算子を使用してセルのアドレスを取得するさまざまな手法を示しています。単一のセルは Cells(row,column) を使用できます。row は行番号、column は列番号です。行番号と列番号は 1 から始まります。

単一のセルまたはセル範囲のアドレスは、Range() を使用して取得できます。ここで、括弧内の引数は、二重引用符で囲まれた単一のセル名 ("A2" など)、コロンで区切られ、二重引用符で囲まれた 2 つのセルにすることができます。名前 (例: "A3:B4") または 2 つの cells() 識別子で表される範囲 (例: ws.cells(1,1)、ws.Cells(2,2))。Offset() メソッドは、別のセルへの参照に基づいてセルのアドレスを取得する方法を提供します。


import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets("Sheet1")
ws.Cells(1,1).Value = "完美Excel"
ws.Cells(1,1).Offset(2,4).Value = "excelperfect"
ws.Range("A2").Value = "公众号"
ws.Range("A3:B4").Value = "34"
ws.Range("A6:B7,A9:B10").Value = "67910"
ws.SaveAs('cell_sample.xlsx')
excel.Application.Quit()

セル コンテンツの自動入力

次のスクリプト コードは、Excel のオートフィル機能を使用してセル A1 と A2 のデータを検出し、セル A10 にオートフィルします。スクリプト コードは、セル A1 に 1 を入力し、セル A2 に 2 を入力し、範囲 A1:A10 を自動的に入力します。したがって、セル A1:A10 は 1、2、3、4、...、10 で埋められます。


import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets("Sheet1")
ws.Range("A1").Value = 1
ws.Range("A2").Value = 2
ws.Range("A1:A2").AutoFill(ws.Range("A1:A10"),win32.constants.xlFillDefault)
wb.SaveAs('autofill_sample.xlsx')
excel.Application.Quit()

細胞の色

次のスクリプトは、Interior.ColorIndex メソッドを使用してセルに内部 (背景) 色を追加します。


import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets("Sheet1")
for i in range(1, 21):
 ws.Cells(i, 1).Value = i
 ws.Cells(i, 1).Interior.ColorIndex = i
wb.SaveAs('color_sample.xlsx')
excel.Application.Quit()

列フォーマット

次のスクリプトは、幅の狭い列と幅の広い列の 2 つのデータ列を作成し、ColumnWidth プロパティを設定して列幅をフォーマットします。Columns.AutoFit() 関数を使用して、スプレッドシート内のすべての列を自動的に調整することもできます。


import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets("Sheet1")
ws.Range("A1:A10").Value = "E"
ws.Range("B1:B10").Value = "完美Excel公众号欢迎你"
ws.Columns(1).ColumnWidth = 1
ws.Range("B:B").ColumnWidth = 29
wb.SaveAs('colwidth_sample.xlsx')
excel.Application.Quit()

あるワークシートから別のワークシートにデータをコピーする

以下のスクリプトは、FillAcrossSheets() メソッドを使用して、1 つのワークシートからブック内の他のすべてのワークシートにデータをコピーします。


import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets.Add()
ws = wb.Worksheets.Add()
ws = wb.Worksheets("Sheet1")
ws.Range("A1:J10").Formula = "=row()*column()"
wb.Worksheets.FillAcrossSheets(wb.Worksheets("Sheet1").Range("A1:J10"))
wb.SaveAs('copy_Sample.xlsx')
excel.Application.Quit()

ワークシートのセルの書式を設定する

以下のスクリプトは、2 列のデータを作成し、ワークシートで使用されるフォント タイプとフォント サイズをフォーマットします。


import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets('Sheet1')
for i, font in enumerate(["Arial", "Courier New", "等线", "微软雅黑", "宋体"]):
 ws.Range(ws.Cells(i+1, 1), ws.Cells(i+1,2)).Value = [font, i+i]
 ws.Range(ws.Cells(i+1, 1), ws.Cells(i+1,2)).Font.Name = font
 ws.Range(ws.Cells(i+1, 1), ws.Cells(i+1,2)).Font.Size = 12+i
ws.Range("A1:A5").HorizontalAlignment = win32.constants.xlRight
ws.Range("B1:B5").NumberFormat = "$###,##0.00"
ws.Columns.AutoFit()
wb.SaveAs('format_sample.xlsx')
excel.Application.Quit()

行の高さを設定する

以下のスクリプトは、いくつかのサンプル データを作成し、行の高さとデータの配置を調整します。行の高さは、RowHeight メソッドを使用して設定するか、AutoFit() を使用してセルの内容に基づいて自動的に調整できます。


import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Add()
ws = wb.Worksheets("Sheet1")
ws.Range("A1:A2").Value = "小"
ws.Range("B1:B2").Value = "小\n兔"
ws.Range("C1:C2").Value = "一只\n小\n兔"
ws.Range("D1:D2").Value = "这是\n一只\n小\n兔"
ws.Rows(1).RowHeight = 60
ws.Range("2:2").RowHeight = 120
ws.Rows(1).VerticalAlignment = win32.constants.xlCenter
wb.SaveAs('rowheight_sample.xlsx')
excel.Application.Quit()

注: コード内の pywin32 ライブラリは https://pypi.org/project/pywin32 にあります。

おすすめ

転載: blog.csdn.net/veratata/article/details/128642234