• 【xlwings1】快速入门


    前言:安装

    pip install xlwings

    xlwings 安装成功后,如果运行提示报错“ImportError: no module named win32api”,请再安装 pypiwin32 或者 pywin32 包;(pip install pypiwin32)

    1、脚本:自动化/与Python的Excel交互

    创建工作薄或打开现有工作簿

    import xlwings as xw
    wb = xw.Book()  # 这句创建一个新的工作薄
    wb = xw.Book('FileName.xlsx')  # 连接到当前工作目录中的现有文件
    wb = xw.Book(r'C:path	ofile.xlsx')  # 在Windows上:使用原始字符r来避免反斜转义

     如果打开了多个文件可以用下面的语句来获取对象:

    xw.apps[0].books['FileName']
    import xlwings as xw
    wb = xw.apps[0].books['工作簿1']
    sht = wb.sheets[0]

    实例化一个表对象:

    sht = wb.sheets['Sheet1']
    sht = wb.sheets[0]

    非常容易的读取单元格的值,或将值写入单元格

    sht.range("A1").value = "Foo1"   #将值写入单元格
    v = sht.range("A1").value         #读取excel的值
    print(v)  #打印结果:Foo1

     有许多方便的特性,例如:单元格范围扩展

    sht.range('A1').value = [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]] #将列表或元组中的数据写入单元格区域
    sht.range('A1').value = [('Foo 1', 'Foo 2', 'Foo 3'), (10.0, 20.0, 30.0)] #将列表或元组中的数据写入单元格区域
    sht.range('A1').value = [('Foo 1', 'Foo 2', 'Foo 3'), (10.0, 20.0, 30.0)] #将列表或元组中的数据写入单元格区域
    v = sht.range('A1').expand().value  #读取单元格A1所在的区域的值
    print(v)

     快捷操作活动单元格

    如果您希望快速地与活动工作簿中的活动表对话,您不需要实例化工作簿和表单对象,但可以简单的按下面代码做:

    import xlwings as xw
    xw.Range("a1").value = 'Foo1'  #一定注意这个Range是大写开头的,而实例话对象的是小写的
    v = xw.Range("A1").value

    2、宏命令:从Excel中调用Python

    1)在vba中调用python首先要安装插件,在Windows中打开CMD命令行输入:xlwings addin install

    2)安装成功后,在VBA编辑窗口,菜单栏中的工具——引用,然后选择 xlwings 

     可以使用RunPython函数从VBA调用Python函数。

    Sub HelloWorld()
        RunPython ("import hello; hello.world()")
    End Sub

    在默认情况下,RunPython期望.py文件与Excel文件在相同的目录中。通过使用xw.Book.caller来获取工作簿对象。

    # hello.py
    #import numpy as np
    import xlwings as xw
    
    def world():
        wb = xw.Book.caller()
        wb.sheets[0].range('A1').value = 'Hello World!'

     3、自定义函数:用户自定义函数(只限Windows)

    写一个用户自定义函数是很简单的:

    import xlwings as xw
    
    @xw.func
    def hello(name):
        return 'Hello {0}'.format(name)

    要求excel表格的名字必须和.py的名字相同才能导入,否则会报错

  • 相关阅读:
    JDK源代码学习-基础类
    六、Java多人博客系统-2.0版本-代码实现
    JDK源代码学习-ArrayList、LinkedList、HashMap
    Java拓展接口-default关键词
    七、Java多人博客系统-2.0版本-docker部署
    五、Java多人博客系统-2.0版本-数据库设计
    四、Java多人博客系统-2.0版本
    max file descriptors [10240] for elasticsearch process is too low, increase to at least [65535]
    system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
    which: no java in (/sbin:/usr/sbin:/bin:/usr/bin) Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME
  • 原文地址:https://www.cnblogs.com/sunshuhai/p/9057378.html
Copyright © 2020-2023  润新知