翼度科技»论坛 编程开发 python 查看内容

Python工具箱系列(二十七)

9

主题

9

帖子

27

积分

新手上路

Rank: 1

积分
27
Excel是微软出品的办公神器,大部分读者相信或多或少都用过。其自带的函数丰富,可以进行复杂的数据运算、分析以及可视化的输出。到目前为止没有出现可以望其项背的竞品,大部分竞品不是在模仿的路上,就是在失败的路上。
虽然Excel不是数据库管理系统,Excel文档也不是完全结构化的文件,但它以行列形式保存了大量的数据,也可以将其视作准数据库文件。历史上,python有许多库能够操作Excel,例如lsxwriter、openpyxl、pandas、xlwings等,只是功能多少的问题。我们使用openpyxl库来操作excel文档。需要说明的是,由于Excel多次重大升级后,早期版本与现代版本差距明显,openpyxl只能够打开后缀为xlsx的文档。
它的安装过程如下:
  1. pip install openpyxl
复制代码
使用前文介绍的faker库,创建一些模拟数据,用于后续的读写操作,代码示例如下:
  1. import random
  2. from faker import Faker
  3. from openpyxl import Workbook
  4. # 最高薪资(单位为K)
  5. maxsalary = 30
  6. def fakedata(maxtimes):
  7.     # 模拟数据。人名+薪资
  8.     fake = Faker('zh_CN')
  9.     data_total = [[fake.name(), random.randint(0, maxsalary)]
  10.                   for x in range(maxtimes)]
  11.     return data_total
  12. def create_xlsx(filename):
  13.     fakesalary = fakedata(100)
  14.    
  15.     wb = Workbook()
  16.     # 获取被激活的 worksheet
  17.     ws = wb.active
  18.     for info in fakesalary:
  19.         ws.append(info)
  20.     wb.save(filename)
  21. create_xlsx("d:/salary.xlsx")
复制代码
Excel文档创建后效果如下图所示:

除此之外,可以打开已经有的Excel文档,对表格、单元、行、列进行操作,相关示例代码如下:
  1. import random
  2. from faker import Faker
  3. from openpyxl import load_workbook
  4. def show_sheets(filename):
  5.     wb = load_workbook(filename)
  6.     return wb.sheetnames
  7. def create_sheet(filename, name, title):
  8.     wb = load_workbook(filename)
  9.     ws1 = wb.create_sheet(name)
  10.     ws1.title = title
  11.     ws1["A1"]=8848.8848
  12.     ws1["B2"]="hello raindrop"
  13.     wb.save(filename)
  14. def ops_data(filename,sheetname):
  15.     wb = load_workbook(filename)
  16.     ws1 = wb.get_sheet_by_name(u"Sheet")
  17.     # 操作单列
  18.     for cell in ws1["A"]:
  19.         print(cell.value)
  20.         
  21.     # 操作单行
  22.     for cell in ws1["1"]:
  23.         print(cell.value)
  24.         
  25.     # 操作多列
  26.     for column in ws1['A:B']:
  27.         for cell in column:
  28.             print(cell.value)
  29.     # 操作多行
  30.     for row in ws1['1:3']:
  31.         for cell in row:
  32.             print(cell.value)   
  33.     # 所有行
  34.     for row in ws1.iter_rows():
  35.         for cell in row:
  36.             print(cell.value)
  37.     # 所有列
  38.     for column in ws1.iter_cols():
  39.         for cell in column:
  40.             print(cell.value)   
  41.    
  42. excelname = 'd:/salary.xlsx'
  43. print(show_sheets(excelname))
  44. create_sheet(excelname, "demosheet", "hello excel")
  45. ops_data(excelname, "sheet")
复制代码
当能够随意操作Excel文档时,就完成了数据分析最基础的工作之一。

来源:https://www.cnblogs.com/shanxihualu/p/17235609.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具