zoukankan      html  css  js  c++  java
  • 【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的名字相同才能导入,否则会报错

  • 相关阅读:
    【1】排行榜算法设计
    基础问答【二】
    基础问答【一】
    【1】c语言
    (五)帧同步与状态同步
    (四)c++虚函数详解
    (三)git pull报错解决方案,Your local changes to the following files would be overwritten by merge
    (二)干货!获取该目录下,指定权限不为770的文件, 并设置权限为770
    【8】java新特性,双冒号 :: 的使用场景
    go(01) 基础语法
  • 原文地址:https://www.cnblogs.com/sunshuhai/p/9057378.html
Copyright © 2011-2022 走看看