上の「Pythonクローラーとデータマイニング」をクリックしてフォローしてください
「Books」に返信すると、初心者から上級者まで、合計10冊のPythonの電子書籍を受け取ることができます。
今
日
鶏肉
スープ
Xiang Wanyiは気分が悪く、固原に向かった。
みなさん、こんにちは。早く起きます。
我々が使用する方法を詳細に説明した前回の記事でopenpyxl
動作してExcelを、実際には、他のPythonライブラリがあり、直接のようなExcelファイルを操作することができxlwings
、xlrd
、xlwt
というように、この記事では、別の優れたライブラリを説明しますxlwings
最初に、または話したいと思いますが、各ライブラリの良い点と悪い点の明確な区別はなく、各ライブラリには適切なアプリケーションシナリオがありxlwings
、openpyxl
多くの違いにより、それらの機能が補完的であることがわかります。
「「
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に基づくオフィスオートメーションケースも更新します!
--- - --- --- --- - --- 終わり --- - --- - --- --- - -
以前の素晴らしい記事の推奨事項:
Pycharmをインストールした後にCドライブに大きなファイルを生成する問題を解決します
記事では、Djangoを使用して既存のデータベースからモデルを逆生成する方法を説明しています
Djangoを使用してMysqlに接続する方法を教えてください
ようこそ誰もが好きに、メッセージを残して、前方、転載をあなたの会社やサポートをありがとうございました
Python学習グループに参加したい場合は、バックグラウンドで返信してください[グループに参加]
何千もの川や山がいつも恋をしています。[見る]をクリックしてください。
/本日のメッセージトピック/
一言か二言言ってください~~