Python工具箱系列(二十七)
Excel是微软出品的办公神器,大部分读者相信或多或少都用过。其自带的函数丰富,可以进行复杂的数据运算、分析以及可视化的输出。到目前为止没有出现可以望其项背的竞品,大部分竞品不是在模仿的路上,就是在失败的路上。
虽然Excel不是数据库管理系统,Excel文档也不是完全结构化的文件,但它以行列形式保存了大量的数据,也可以将其视作准数据库文件。历史上,python有许多库能够操作Excel,例如lsxwriter、openpyxl、pandas、xlwings等,只是功能多少的问题。我们使用openpyxl库来操作excel文档。需要说明的是,由于Excel多次重大升级后,早期版本与现代版本差距明显,openpyxl只能够打开后缀为xlsx的文档。
它的安装过程如下:
pip install openpyxl
使用前文介绍的faker库,创建一些模拟数据,用于后续的读写操作,代码示例如下:
import random from faker import Faker from openpyxl import Workbook # 最高薪资(单位为K) maxsalary = 30 def fakedata(maxtimes): # 模拟数据。人名+薪资 fake = Faker('zh_CN') data_total = [[fake.name(), random.randint(0, maxsalary)] for x in range(maxtimes)] return data_total def create_xlsx(filename): fakesalary = fakedata(100) wb = Workbook() # 获取被激活的 worksheet ws = wb.active for info in fakesalary: ws.append(info) wb.save(filename) create_xlsx("d:/salary.xlsx")
Excel文档创建后效果如下图所示:
除此之外,可以打开已经有的Excel文档,对表格、单元、行、列进行操作,相关示例代码如下:
import random from faker import Faker from openpyxl import load_workbook def show_sheets(filename): wb = load_workbook(filename) return wb.sheetnames def create_sheet(filename, name, title): wb = load_workbook(filename) ws1 = wb.create_sheet(name) ws1.title = title ws1["A1"]=8848.8848 ws1["B2"]="hello raindrop" wb.save(filename) def ops_data(filename,sheetname): wb = load_workbook(filename) ws1 = wb.get_sheet_by_name(u"Sheet") # 操作单列 for cell in ws1["A"]: print(cell.value) # 操作单行 for cell in ws1["1"]: print(cell.value) # 操作多列 for column in ws1['A:B']: for cell in column: print(cell.value) # 操作多行 for row in ws1['1:3']: for cell in row: print(cell.value) # 所有行 for row in ws1.iter_rows(): for cell in row: print(cell.value) # 所有列 for column in ws1.iter_cols(): for cell in column: print(cell.value) excelname = 'd:/salary.xlsx' print(show_sheets(excelname)) create_sheet(excelname, "demosheet", "hello excel") ops_data(excelname, "sheet")
当能够随意操作Excel文档时,就完成了数据分析最基础的工作之一。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)