学习基础的Python与Excel的工作关系

157 阅读4分钟

快速介绍

在大多数情况下,处理大量的数据需要进行一些操作,以使其对普通用户来说更容易阅读。你如何完成这个任务呢? 不用再找了!Python的 [openpyxl](https://openpyxl.readthedocs.io/en/stable/ "https://openpyxl.readthedocs.io/en/stable/")库提供了产生一个格式良好的 Excel 电子表格的工具。

  • 自定义标题和/或副标题。
  • 格式化的列和/或行。
  • 排序的数据。
  • 简单/复杂的计算,以及更多,更多。

Excel电子表格是用户友好型的,不需要广泛的软件知识来执行手头的任务。

下面是一个文本文件的内容。这个文件包含了著名 爵士乐手的样本,他们的净资产是虚构的。

First,Last,Birth Year,Birth State,Birth Country,Instrument,Est. Worth
Miles,Davis,1926,Illinois,USA,Trumpet,1343500
Duke,Ellington,1899,Washington,USA,Piano,1911400
John,Coltrane,1926,North  Carolina,USA,Saxophone,2575500
Dizzy,Gilespie,1917,South Carolina,USA,Trumpet,3690300
Ella,Fitzgerald,1917,Virgina,USA,Singer,8275780
Count,Basie,1904,New Jersey,USA,Piano,5145800
Fats,Waller,1904,New York,USA,Piano,3250930
Oscar,Peterson,1925,Montreal,CDA,Piano,7670945
Charlie,Parker,1920,Kansas City,USA,Saxophone,4375395
Billie,Holiday,1915,Philadelphia,USA,Singer,1560454

如何在Python中保存数据到CSV?

当前格式的文本文件不能直接保存到Excel。有一个中间步骤:将文本保存为CSV文件。

为了完成上面的文本输出,请执行以下步骤:

  • 使用鼠标,选中所有的爵士乐手(包括标题行)。
  • 在键盘上,按CTRL+C组合键(复制数据到剪贴板)。
  • 创建一个空的CSV文件(使用文本编辑器,如记事本)。
  • 打开并激活新的CSV文件,按CTRL+V组合键(从剪贴板粘贴数据)。
  • 将该文件作为 "j-greats.csv"保存在当前工作目录中。

与Excel一起工作的Python库

在进行任何数据处理之前,需要安装两个新的库。第一个库 (openpyxl) 提供了Python对Excel的访问。第二个库 ([pandas](https://blog.finxter.com/pandas-quickstart/ "10 Minutes to Pandas (in 5 Minutes)")) 实现了从CSV到Excel的转换。

  1. openpyxl
  2. pandas

要安装这些库,请导航到IDE 终端。在命令提示符()下,为每个安装程序执行下面的代码。对于本例中使用的终端,命令提示符是一个美元符号()下,为每个安装程序执行下面的代码。对于本例中使用的终端,命令提示符是一个美元符号()。你的终端提示符可能不同。

安装openpyxl

$ pip install openpyxl

点击键盘上的键,开始安装过程。

安装pandas

$ pip install pandas

按键盘上的键,开始安装过程。

如果安装成功,终端上会显示一条信息,表明这一点。

如何在Python中转换和保存CSV到Excel文件?

在继续前进之前,先前保存的CSV需要转换为Excel。这个转换的步骤在下面几行代码中。

import pandas as pd
read_file = pd.read_csv ('j-greats.csv')
read_file.to_excel ('j-greats.xlsx', index=False, header=True)

第 [1] 行导入pandas 库,并将pd 指定为该库的引用。

第[2]行读取CSV文件的内容并将内容保存到read_file

第[3]行将三个参数传递给 to_excel() 方法。

  • 第一个参数是一个文件名*(any-file-name.xlsx*),是必须的。对于这个例子,文件名是j-greats.xlsx
  • 第二个参数*(index=True/False/None*)是不需要的。如果这个参数被遗漏,默认值是无/假。无/真意味着不在左边添加带有行(索引)号的附加列。如果是True,则显示该列。
  • 第三个参数(header=True/False)是不需要的。如果这个参数被遗漏,标题行会自动显示。

如果这段代码运行成功,当前工作目录现在包含j-greats.xlsx 文件。

输出(取决于传递的参数)

output Line [3] 可能的参数。index=False/None,header=True

输出行[3] 可能的参数: 。index=True, header=False

如何在Python中加载一个Excel工作簿?

要加载一个现有的工作簿,运行下面的代码。

  • 第 [1] 行从 openpyxl 库中导入load_workbook() 方法。这个库是加载工作簿所必需的。
  • 第[2]行指定file_name 作为对现有j-greats.xlsx 文件的引用。
  • 第[3]行加载工作簿(包括所有相关的工作表)并将其内容分配给w_book

运行这段代码没有提供可见的输出。但是,现在可以访问工作簿和工作表了。

from openpyxl import load_workbook
file_name = 'j-greats.xlsx'
w_book   = load_workbook(filename=file_name)

如何确定活动的Openpyxl工作表 - 单个工作表

每次工作簿最初加载时,默认情况下,活动工作表被指定为最左边的工作表(标签1)。

在创建j-greats.xlsx ,发生了以下情况。

  • Excel创建了一个名为j-greats.xlsx 的工作簿。
  • Excel为这个工作簿添加了一个工作表,Sheet1
  • 这个工作表成为活动工作表。
  • CSV的内容写到工作表Sheet1
  • 在本例中,工作簿被保存并置于当前工作目录中。

为了确认活动工作表,运行以下代码。

w_sheets = w_book.active
print(w_sheets.title)

输出

Sheet1

总结

在这篇文章中,我们学习了如何:

  • 从纯文本创建CSV文件。
  • 安装所需的库。
  • 将CSV转换为Excel。
  • 加载一个工作簿和。
  • 确定活动工作表。