首页 > 其他分享 >xlwings模块的日常使用

xlwings模块的日常使用

时间:2024-11-21 19:56:50浏览次数:1  
标签:xlsx sheet wb app xlwings range 日常 模块 data

Python的xlwings模块经常用来操作xlsx文档,是办公党比较常用的。
下面就是一个示例,从文件A.xlsx中读取一些数据,在B.xlsx中做筛选,然后保存到C.xlsx

import xlwings as xw

fileA = r"A.xlsx"
fileB = r"B.xlsx"
fileC = r"C.xlsx"

app = xw.App(visible=False, add_book=False)
app.display_alerts = False
app.screen_updating = False
# 打开 A.xlsx 文件
wb_a = app.books.open(fileA)
sheet_a = wb_a.sheets[0]

# 读取 A.xlsx 中某一列的数据
file_names = sheet_a.range('A1').expand('down').value[1:]
#print(file_names)
wb_a.close()
print("begin to filter")
# 打开 B.xlsx 文件
wb_b = app.books.open(fileB)
sheet_b = wb_b.sheets[0]

# 读取 B.xlsx 中某一列的数据(假设为URL)
urls = sheet_b.range('AU1').expand('down').value[1:]
#print(urls)

# 根据 A.xlsx 中的文件名筛选 B.xlsx 中的数据
print("Used range:",sheet_b.used_range)
data = sheet_b.used_range.value

# 根据 A.xlsx 中的文件名筛选 B.xlsx 中的数据
filtered_data = [data[0]]  # 保留 B.xlsx 表头
for row in data[1:]:
    fullurl = row[46] # 假设文件名在 B.xlsx 中的第47列(AU列)
    if not fullurl: continue
    for file_name in file_names:
        if file_name in fullurl:  
            filtered_data.append(row)
            break

wb_b.close()
# 创建新的 Excel 文件 C.xlsx 并保存筛选后的数据
print("begin to save")
wb_c = app.books.add()
sheet_c = wb_c.sheets[0]
# 逐行写入数据
# for i, row in enumerate(filtered_data):
#     sheet_c.range('A{}'.format(i+1)).value = row
sheet_c.range('A1').value = filtered_data
wb_c.save(fileC)
wb_c.close()

# 关闭所有打开的工作簿
app.quit()

print("done")

 

标签:xlsx,sheet,wb,app,xlwings,range,日常,模块,data
From: https://www.cnblogs.com/achillis/p/18561429

相关文章

  • python-5-常用模块
    python-5-常用模块什么是模块?  常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。  但其实import加载的模块分为四个通用类别:1使用python编写的代码(.py文件)2已被编译为共享库或DLL的C或C++扩展3包好一组模......
  • Homebrew 使用指南:为开发者和日常用户量身定制的包管理器
    Homebrew是macOS和Linux平台上强大的包管理工具,它让软件的安装、更新和卸载变得简单而优雅。如果你是开发者或想高效管理工具,这篇指南将帮助你快速上手并掌握Homebrew的使用技巧。1.什么是Homebrew?Homebrew是一个包管理器,它的核心目标是“让缺少的东西变得简单......
  • 【web】Gin+Go-Micro +Vue+Nodejs+jQuery+ElmentUI 用户模块之前端vue商城项目构建
    构建一个Vue商城项目涉及到多个技术栈的整合。我们将逐步探讨使用Gin、Go-Micro、Vue、Node.js、jQuery和ElementUI来实现用户模块的构建,分为初级、中级、高级阶段。初级用法介绍初级阶段主要关注基础功能实现,如商品展示和简单的购物车逻辑。使用Vue进行前端构建,结合Elem......
  • 电源模块的作用隔离,保护,电压变换, 稳压,降噪 BOSHIDA定压输入,输出NR系列
    电源模块的作用隔离,保护,电压变换,稳压,降噪BOSHIDA定压输入,输出NR系列电源模块的作用一、隔离:安全隔离:包括强电与弱电隔离、IGBT隔离驱动、浪涌隔离保护、雷电隔离保护(如医疗电子设备对人体接触的隔离保护)。噪声隔离:包括模拟电路与数字电路隔离、强弱信号隔离,同时能消除接......
  • 拍照远传模块,水表抄表,NB-IOT
    拍照远传模块,用于周期性拍摄照片并上传到服务器。典型应用:水表抄表、燃气抄表等。主要技术参数:供电电源:3.7V锂电池供电,工作电压3.3-4.2V;休眠电流:~4uA,休眠功耗~16uW;一次上报功耗:~2mAh(实测:400mAh锂电池,每隔10分钟拍照上传一次,可拍摄200次左右,每张照片数据约13kB);通讯方式:NB_I......
  • pyautogui模块,PC自动化脚本,控制鼠标
    pyautogui用以操作鼠标,键盘1.鼠标移动importpyautogui#鼠标移动pyautogui.moveTo(x=0,y=0)#鼠标移动,xy对应坐标位置,duration移动所用时间pyautogui.moveTo(x=0,y=0,duration=3)#1920x1080分辨率最大写到分辨率-1,否则报错pyautogui.moveTo(x=1919,y=1079,duration=3......
  • 日常 34
    html列表标签:有序列表无序列表定义列表项超链接标签href指定访问资源的urltarget指定代开资源的方式:_self当前页面打开_blank在空白页面打开表格标签:定义表格border定义表格边框宽度width定义表格宽度cellspacing规定单元格之间的空白定义行align定义表格行的内......
  • 1-2模块电源电路(11.20)
    DCDC模块电源常用电路:变换器作用:进行电压转换、保证所需的相关输出电容恒流:C三角U=IT;电感恒压:L三角I=UT;V0/Vim=D(1-D);三种非隔离开关电源:降压、升压、升降压电路三种隔离开关电源:反激型变换器、正激型变换器、桥式变换器、反激型:实现多路输出、输出波形电流、控制输......
  • ESP32-CAM模块介绍
    一、引言    在当今的物联网时代,各种智能设备层出不穷。ESP32-CAM模块以其强大的功能、小巧的尺寸和高性价比,成为了众多开发者和爱好者的热门选择。本文将详细介绍ESP32-CAM模块的特点、功能、应用场景以及使用方法。二、ESP32-CAM模块概述    ESP32-CAM是一......
  • 从零开始的Python世界生活——内置模块(Math)
    从零开始的Python世界生活——内置模块(Math)Python的math模块提供了丰富的数学函数和常数,支持基本的数学运算、三角函数、对数、指数等,适用于科学计算和工程应用。数学常量:注意math模块的常量是以双精度浮点数存储的,所以通常只有15到17位有效数字的精度,如果需要更高的精度推......