美文网首页Python_Xlwings
遇见 xlwings, 让你的 Excel 飞起来

遇见 xlwings, 让你的 Excel 飞起来

作者: 5cb608806559 | 来源:发表于2020-09-11 00:23 被阅读0次

Pandas的read_excel()与to_excel()实际上就是读写有格式的文本文件,操作excel文件和操作text、csv文件没有区别,Excel文件只是用来储存数据。但除了操作数据,其实我们还可以利用Python调整Excel文件的表格宽度、字体颜色等。

遇见 xlwings

xlwings是一个Python库,它使Python的一些数据分析特性可以在Excel实例中使用,包括对numpy数组、pandas Series和DataFrame的支持。与其他任何Python库一样,我们可以使用pip或conda等常用方法来安装它,但是如果您需要更多详细信息,您可以在这里访问xlwings的文档。(地址:https://docs.xlwings.org/en/stable/installation.html

xlwings的特色

  • xlwings能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改
  • 可以和matplotlib以及pandas无缝连接
  • 可以调用Excel文件中VBA写好的程序,也可以让VBA调用用Python写的程序。
  • 开源免费,一直在更新

xlwings的安装

如果安装了Anaconda,而且Python版本为3.5或3.5以上,那么恭喜你xlwings就已经可用了。

conda install xlwings

xlwings的使用

  • xlwings 打开-新建
import time
import xlwings as xw

"""
visible
Ture:可见excel
False:不可见excel

add_book
True:打开excel并且新建工作簿
False:不新建工作簿
"""
app = xw.App(visible=True, add_book=False)

wb = app.books.open('./a.xlsx')
wb2 = app.books.open("./b.xlsx")

# 打印当前活跃的books-<Book [b.xlsx]>
print(app.books.active)

# 打印当前的book-Books([<Book [a.xlsx]>, <Book [b.xlsx]>])
print(app.books)

wb.save()

# 关闭a.xlsx文件-指定操作的excel
# wb.close()
app.books[0].close()

time.sleep(3)
app.quit()

  • 新建excel文件
import xlwings as xw

app = xw.App(visible=True, add_book=False)

# 添加一个新的工作薄
wb = app.books.add()

# 保存文件
wb.save('./c.xlsx')
wb.close()
app.quit()
  • xlwings sheet操作
 #新建sheet
wb.sheets.add("sheet2")

 #删除sheet
wb.sheets["sheet2"].delete()

#查看当前表格名
wb.sheets[1].name 

#清空整张表格的内容和格式
wb.sheets[1].clear() 

# 查看当前活跃的sheet
wb.sheets.active
sh = wb.sheets.active
sh.range("A1").value="A1"

# 激活指定的sheet
wb.sheets["sheet1"].activate()
  • xlwings 操作数据
    引用单元格
    import xlwings as xw
    import time
    
    app = xw.App(visible=True, add_book=False)
    wb = app.books.open("./a.xlsx")
    sht = wb.sheets["sheet1"]
    # TODO 待输入-见下面示例
    
    # A1 单元格
    wb.sheets["sheet1"].range("A1")
    
    # A2 单元格
    sht.range("A2")
    
    # A3单元格-xw-当前活跃的app-book-sheet
    xw.Range("A3")
    
    # A4单元格
    rng_a4 = sht["A4"]
    
    # A1:B3 单元格
    rng_a1_b3 = sht["A1:B3"]
    rng_a1_b3_2 = sht.range("A1:B3")
    xw.Range((1, 1), (3, 2))
    
    # C1单元格
    rng_c1 = sht[0, 2]
    
    time.sleep(3)
    wb.save()
    wb.close()
    app.quit()
    
    
    单个单元格写入数据
    sht.range("A1").value="A1"
    
    输入多个数据到行
    sht.range("A2").value=[1,2] # 在A2输入1,B2输入2
    
    输入多个数据到列
    sht.range("A3").options(transpose=True).value = ["A", "B", "C"]
    
    输入表格
    sht.range('A4').options(expand='table').value = [[1, 2], [3, 4]]
    sht.range("A4:B5").value = [[1, 2], [3, 4]]
    
    xlwings 读取数据
    sht.range("A1").value
    sht.range("A1:A3").value
    sht.range("A1:B3").value
    xw.Range("A1").value
    

相关文章

网友评论

    本文标题:遇见 xlwings, 让你的 Excel 飞起来

    本文链接:https://www.haomeiwen.com/subject/wxuhektx.html