超完成★Python操作Excelライブラリxlwings一般操作詳細説明!

上の「Pythonクローラーとデータマイニング」をクリックしてフォローしてください

Books」に返信すると、初心者から上級者まで、合計10冊のPythonの電子書籍を受け取ることができます。

鶏肉

スープ

Xiang Wanyiは気分が悪く、固原に向かった。


みなさん、こんにちは。早く起きます。

我々が使用する方法を詳細に説明した前回の記事でopenpyxl動作してExcelを、実際には、他のPythonライブラリがあり、直接のようなExcelファイルを操作することができxlwingsxlrdxlwtというように、この記事では、別の優れたライブラリを説明しますxlwings

最初に、または話したいと思いますが、各ライブラリの良い点と悪い点の明確な区別はなく、各ライブラリには適切なアプリケーションシナリオがありxlwingsopenpyxl多くの違いにより、それらの機能が補完的であることがわかります

「「

xlwings:Excelソフトウェア、サポート.xls、および.xlsxフォーマットが必要です。ExcelVBAファイルの記述されたプロシージャを呼び出すことができます。また、互換性matplotlib必要です。pandas

openpyxl:Excelはソフトウェアを必要とせず、.xlsxフォーマットのみをサポートします

インストール

xlwings これは非標準のライブラリであり、コマンドラインにインストールする必要があります。ターミナル(Mac)/コマンドライン(Win)でpipを使用してインストールできます。通常、問題はありません。

pip install xlwings

事前知識

上のxlwingsコア理解下の写真のことです。

見ることができます、そしてxlwings直接ドッキングはapps、Excelアプリケーションであり、次にワークブックbooksとワークシートですsheets、そしてこれopenpyxlはまったく異なります、それはまさにこれのためですxlwings、必要性はまだインストールされたExcelアプリケーション環境です

詳細なコード

1.Excelプログラムを開きます

アプリで開く

import xlwings as xw
app = xw.App(visible=True, add_book=False) # 程序可见,只打开不新建工作薄
app.display_alerts = False # 警告关闭
app.screen_updating = False # 屏幕更新关闭

2、保存、終了、閉じる

xlwingsプロシージャアプリが主要な操作ターゲットであるため、最初と最後はアプリのオンとオフに基づいていることに注意してください。

path = r"C:\Scientific Research\Python"
wb = app.books.open(path + r'\practice.xlsx')
wb.save() # 保存文件
wb.close() # 关闭文件
app.quit() # 关闭程序

テーブルを開き、固定とアクティブの2つの状況に分けます。

xw.Book(path + r'\practice.xlsx')   # 固定打开表格
xw.books.open(path + r'\practice.xlsx') # 频繁打开表格

固定および頻繁に開いてはと呼ばれる概念が含まアクティブなオブジェクトを落札、xlwings操作がより柔軟:

# 活动应用程序
app = xw.apps.active

# 活动工作簿
wb = xw.books.active  # 在活动app
wb = app.books.active  # 在特定app

# 活动工作表
sheet = xw.sheets.active  # 在活动工作簿
sheet = wb.sheets.active  # 在特定工作簿

# 活动工作表的Range
xw.Range('A1') 

3、新しいExcelファイルを作成します

ブックを保存し、ブックを閉じて、プログラムが新しいか開いているかに関係なく、プログラムを閉じることを忘れないでください

path = r"C:\Scientific Research\Python"
wb = app.books.add()
wb.save(path + r'\new_practice.xlsx') 
wb.close() 
app.quit() 

四、内容を読む

サンプルファイルpractice.xlsxは次のとおりです。

次のコード部分には、プログラムの開始コードと終了コードが表示されなくなりました。これにより、重要なポイントを視覚的に確認できます。

path = r"C:\Scientific Research\Python"
wb = app.books.open(path + r'\practice.xlsx')
# 类似 openpyxl 中的 sheet = workbook.active
sheet = wb.sheets.active

# 获取单个单元格的值
A1 = sheet.range('A1').value
print(A1)
# 获取横向或纵向多个单元格的值,返回列表
A1_A3 = sheet.range('A1:A3').value
print(A1_A3)
# 获取给定范围内多个单元格的值,返回嵌套列表,按行为列表
A1_C4 = sheet.range('A1:C4').value
print(A1_C4)

xlwingssheet.rangeでは、取得した1つ以上のセルを操作することにより、追加でsheet.range取得できない場合があります。

# 获取单个单元格的值
A1 = sheet['A1'].value
print(A1)
# 获取横向或纵向多个单元格的值,返回列表
A1_A3 = sheet['A1:A3'].value
print(A1_A3)
# 获取给定范围内多个单元格的值,返回嵌套列表,按行为列表
A1_C4 = sheet['A1:C4'].value
print(A1_C4)

単一のセルまたは複数のセルを使用し.valueて、.rangeまったく同じもの直接取得、出力、および使用できるかどうかだけでなく、openpyxlループスルーを再確立するために必要な複数のセルの値を取得するために同様のことを回避することもできます。

pandas範囲内のすべての値を取得する機器スライス方法:

sheet = wb.sheets.active
A1_B2 = sheet[:2, :2].value
print(A1_B2)

5、データを書き込む

以下は、範囲内の1つのセル、1つの行または1つの列、複数のセル、複数のセルを書き込むためのコードです。

# 写入 1 个单元格
sheet.range('A2').value = '大明'

# 一行或一列写入多个单元格
# 横向写入A1:C1
sheet.range('A1').value = [1,2,3]
# 纵向写入A1:A3
sheet.range('A1').options(transpose=True).value = [1,2,3]

# 写入范围内多个单元格
sheet.range('A1').options(expand='table').value = [[1,2,3], [4,5,6]]

たとえば、practice.xlsx次のように、新しいレコード行追加する場合は次のようになります。

import xlwings as xw
app = xw.App(visible=True, add_book=False)
app.display_alerts = False
app.screen_updating = False

path = r"C:\Scientific Research\Python"
wb = app.books.open(path + r'\practice.xlsx')
sheet = wb.sheets.active
sheet.range('A5').value = ['小兰', 23, '女']

wb.save()
wb.close()
app.quit()

第六に、データ収集の範囲

達成するには2つの方法があります

# 方法一
shape = sheet.used_range.shape
print(shape)

# 方法二
nrow = sheet.api.UsedRange.Rows.count
ncol = sheet.api.UsedRange.Columns.count
print(nrow)
print(ncol)

7、行の高さと列の幅を出力して変更します

# 输出
print(sheet.range('A1:A2').row_height)
print(sheet.range('A1:A2').column_width)
# 修改
sheet.range('A1:A2').row_height = 15
sheet.range('A1:A2').column_width = 10

8.数式を取得して設定します

パンダではできないExcelの数式を呼び出すことができます

# 获取公式
print(sheet.range('B2').formula_array)
# 写入公式
sheet.range('B2').formula='=SUM(A1,A2)'

9、取得、設定、カラーフォーマットのクリア

もちろん、openpyxlのようなスタイルの変更もサポートされています

# 获取颜色
print(sheet.range('C1').color)
# 设置颜色
sheet.range('C1').color = (255, 0, 120)
# 清除颜色
sheet.range('C1').color = None

上記は、いくつかの一般的な操作のコード例と説明にすぎません。その他の操作については、公式ドキュメントを読むことができます。またxlwings、いくつかの操作で他のライブラリとの類似点と相違点を比較することもできます。将来的には、xlwingsに基づくオフィスオートメーションケースも更新します!

--- - --- --- --- - --- 終わり --- - --- - --- --- - -

以前の素晴らしい記事の推奨事項:

ようこそ誰もが好きにメッセージを残して、前方、転載をあなたの会社やサポートをありがとうございました

Python学習グループに参加したい場合は、バックグラウンドで返信してください[グループに参加]

何千もの川や山がいつも恋をしています。[見る]をクリックしください。

/本日のメッセージトピック/

一言か二言言ってください~~

おすすめ

転載: blog.csdn.net/pdcfighting/article/details/113830116