资讯专栏INFORMATION COLUMN

放弃openpyxl,拥抱xlwings(python操作xls)

bbbbbb / 3241人阅读

摘要:基础操作放弃的基础理由不支持文件处理亲测目前版本样式保存的还未解决如果遇到上面两个问题,直接放弃,拥抱吧,没什么出路文档在国内搜索基本很少,如下是基本的单元格操作在如下未满足的情况,可以看下操作文档,可以调它的。

xlwings基础操作

放弃openpyxl的基础理由:①不支持xls文件处理; ②亲测目前版本样式保存的bug还未解决;

如果遇到上面两个问题,直接放弃openpyxl,拥抱xlwings吧,没什么出路;

xlwings文档在国内搜索基本很少,如下是基本的单元格操作;

在如下未满足的情况,可以看下Office操作文档 ,xlwings可以调它的api。

# coding=utf-8
import xlwings as xw
# 设置程序不可见运行
app = xw.App(visible=False, add_book=False)

# ===============  第一部分,创建并写入数据 =====================
# 创建一个test2.xlsx表,并写入数据
# wb = app.books.add()
# ws = wb.sheets.active
# arr = []
# for col in range(1,4):
#     arr_temp = []
#     for row in range(1,4):
#         arr_temp.append(col*10+row)
#     arr.append(arr_temp)
# ws.range("A1:B3").value=arr
# wb.save("data/test2.xlsx")
# wb.close()
# app.quit()
# exit()

# ============== 第二部分,插入、删除行和列 ========================

# 导入已存的demo表格
load_wb = app.books.open("data/test2.xlsx")
# # 打开活动的工作薄的活动工作簿,或者指定的工作簿
load_ws = load_wb.sheets.active
# load_ws = load_wb.sheets["Sheet"]

# 获取总行数(存在数据)
rows = load_ws.api.UsedRange.Rows.count
cols = load_ws.api.UsedRange.Columns.count
# print("该表格总共有:"+str(rows)+" 行")
# print("该表格总共有:"+str(cols)+" 列")
# exit()


# 1-①在第二行前插入2行(可理解为: 在第2-4行插入空白行)
# load_ws.api.rows("2:4").insert
# 1-②删除第2-4行
# load_ws.api.rows("2:4").delete
# 2-①在第二列前插入2列(这里处理的不是很好,其实是增加了对应区域的单元格,并未直接增加列)
# load_ws.range("B1:C"+str(cols)).api.insert
# 2-②删除第2-4列
# load_ws.range("B1:C"+str(cols)).api.delete

# ============== 第三部分,修改指定单元格的值 ========================
# load_ws.range("A1").value = "x11"

# ============== 第四部分,合并单元格 ========================
# load_ws.range("A1:A2").api.merge

# ============== 第五部分,获取单元格横纵坐标index ========================
rng=xw.Range("B2")
# 返回当前格子的行值
# print(rng.row)
# 返回当前格子的列值
# print(rng.column)
# 返回和设置当前格子的高度和宽度
print(rng.width)
print(rng.height)
rng.row_height=40
rng.column_width=50
# 指定单元格的高度和宽度自适应
# rng.columns.autofit()
rng.rows.autofit()
print(rng.width)
print(rng.height)
# load_ws.range("A1:A2").api.height = 20


# ============== 第六部分,其它 ========================
# lst=load_ws.range("A1:A"+str(load_ws["A1048576"].end("up").row)).value #把excel单列值读取到列表中
# lst1=load_ws.range("A1:C"+str(load_ws["A1048576"].end("up").row)).value # 把excel连续两个列的值读取到列表中
# lst=load_ws.range("A1:A"+str(load_ws["A1048576"].end("up").row)).value #A列的值
# lst2=load_ws.range("C1:C"+str(load_ws["A1048576"].end("up").row)).value#C列的值
# lst3=list(zip(lst,lst2))#合并起来然后转为列表
# dicta=dict(lst3)#列表转为字典

# ============== 第七部分,Office操作文档 ========================
# https://docs.microsoft.com/en-us/office/vba/api/excel.range(object)



load_wb.save()
load_wb.close()
app.quit()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43427.html

相关文章

  • openpyxl 基础操作

    摘要:特别提醒不支持对文件的处理,且对原文件的样式保存非常不友好,如果你有保存原文件样式要求的话,建议使用替代基础操作直接复制代码到编辑器,边看边运行,理解起来估计还快些第一部分创建并写入数据创建一个表,并写入数据导入一个已存在的打开活动的工作薄 特别提醒:openpyxl不支持对xls文件的处理,且对原文件的样式保存非常不友好,如果你有保存原文件样式要求的话,建议使用xlwings替代op...

    robin 评论0 收藏0
  • Python 读写excel文件

    摘要:查找了一下,可以操作表的几个库有以下几个这个是推荐使用的库,可以读写以上格式,以结尾的文件。这个支持读取数据,支持以结尾的文件,也就是比较老的格式。这个和上面的相对应,支持写入书和格式化数据,支持结尾的文件格式。 最近需要用到Python来操作excel表,读取表格内容到数据库。所以就搜索了相关资料。查找了一下,可以操作excel表的几个库有以下几个: openpyxl 这个是推荐使用...

    plus2047 评论0 收藏0
  • python实现——处理Excel表格(超详细)

    摘要:目录和基本操作用模块打开文档,查看所有表通过名称获取表格获取活动表获取表格的尺寸获取单元格中的数据获取单元格的行列坐标获取区间内的数据获取指定区间的数据获取指定行列的数据按行列获取值获取活动表的行列数操作创建新的修改单 ...

    Richard_Gao 评论0 收藏0
  • ⚡自组织映射(SOM)神经网络⚡Python实现

    ❤九月❤份了,车神哥又回归了校园 ❉冬天❉还会远吗 ♪推荐一首最近很⚡喜欢⚡的歌♪ ❀No Fear In My Heart -朴树❀ 由于最近在写一篇相关的论文,就说说其中遇到的一些问题吧~ Minisom 之前做过一个对minisom的第三方开源库的介绍,可以点击看这里。 对相应的代码添加了注释: 导入各种库吧 # 导入库from sklearn.model_selectio...

    leon 评论0 收藏0
  • 使用Python批量处理工作簿和工作表

    摘要:使用批量处理工作簿和工作表批量新建并保存工作簿批量打开一个文件夹中的打开工作簿批量重命名一个工作簿的所有工作表批量重命名多个工作簿批量重命名多个工作簿中的同名工作表将一个工作簿的所有工作表批量复制到其他工作簿按条件将一 ...

    maxmin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<