最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

【世界热闻】Python工具箱系列(二十七)

来源:博客园


(资料图片仅供参考)

Excel是微软出品的办公神器,大部分读者相信或多或少都用过。其自带的函数丰富,可以进行复杂的数据运算、分析以及可视化的输出。到目前为止没有出现可以望其项背的竞品,大部分竞品不是在模仿的路上,就是在失败的路上。

虽然Excel不是数据库管理系统,Excel文档也不是完全结构化的文件,但它以行列形式保存了大量的数据,也可以将其视作准数据库文件。历史上,python有许多库能够操作Excel,例如lsxwriter、openpyxl、pandas、xlwings等,只是功能多少的问题。我们使用openpyxl库来操作excel文档。需要说明的是,由于Excel多次重大升级后,早期版本与现代版本差距明显,openpyxl只能够打开后缀为xlsx的文档。

它的安装过程如下:

pip install openpyxl

使用前文介绍的faker库,创建一些模拟数据,用于后续的读写操作,代码示例如下:

import randomfrom faker import Fakerfrom openpyxl import Workbook# 最高薪资(单位为K)maxsalary = 30def fakedata(maxtimes):    # 模拟数据。人名+薪资    fake = Faker("zh_CN")    data_total = [[fake.name(), random.randint(0, maxsalary)]                  for x in range(maxtimes)]    return data_totaldef 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 randomfrom faker import Fakerfrom openpyxl import load_workbookdef show_sheets(filename):    wb = load_workbook(filename)    return wb.sheetnamesdef 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文档时,就完成了数据分析最基础的工作之一。

关键词: