Python 在 execl 中间插入数据
目前采取的是两种方式。
一种是直接 python 输出类似 csv 的格式,公式列就是公式的字符串,然后把整个 csv 直接在 python 复制到剪切板后,手动黏贴进 excel 。
另一种比较大型的,带图片等等的。就是直接用 python 写一个新的 excel (用 xlsxwriter ),但是基本不带格式,单独保存。然后手动把新的 excel 数据黏贴进模板 excel 里。
———-
直接写 excel 带格式的,尝试过直接用模块读取模板 excel 文件,然后往模板里写入数据,但实际会有许多问题。跟那个模块的开发者交流过,对方意思他用的是一个第三方标准,好像是 open 啥的 table/excel 大概这类名字,里面支持的特性有限,有些比较冷门的 excel 特性就没考虑去支持。
———-
VBA 嘛弄过点,但没找到文档,感觉写 /调试起来不顺手,就没深入。
以前试过的一个工具 xlrd 好像更新了,有空 LZ 可以试试,我蹲一个反馈。
xlutils.copy 我也用过,当时也是不行的,不知道有没有更新。
我们广告行业,客户间通行的文件就是 excel,客户大都有二次编辑的需求,很无奈。
我比较常用的匹配不到的部分是条件格式 /数据条 /色阶,这类偏视觉呈现的。但表格结构还是比较严格的数据表,类似 sql/access 这种的。
像你合并单元格这种玩意儿我倒是没试过,但感觉支持度可能不会很好。因为这是更加不像数据表的用法。如果客户不介意,可以考虑直接网页。
另外我觉得你的这个需求(我没有很明白),也许不用 python 。
我不知道你对 excel 的熟悉程度怎么样,我解释一个比较基础的关于 [表格] 的部分。
—–
excel 默认的其实不是表格,我记得好像是叫表单(基本不用,忘了)。
你随便建一点数据,5×5 这样,然后全选,到顶部 [插入] 选项卡,点表格。经过这步转换,这里得到的就是表格。
然后你选中表格中的任何一个单元格,顶部就会有 [设计] 选项卡,可以选视觉样式和汇总行这类的东西。
重要的有几个地方:
1. 这样的表格里,公式的引用写法会变成列名,非常方便。
2. 直接默认待了筛选工具(可以关闭)
3. ctrl+shift+加号,添加行,会自动扩展表格大小。而你的需求,如果在这里黏贴的话,其实底部的内容是会自动下移的。(当然如果不是表格,也可以选择下移,但表格方便一点。)
4. 从命名选择器里,可以对表格命名(跨表格引用会用到)。
反正表格特性挺多的,也蛮多人不知道的。但熟悉之后,一般就只会用到这种比较严谨的数据表格。在熟悉这些特性之后,你可以考虑根据需求,调整一下表格的结构设计。
app = Dispatch(‘Excel.Application’)
xl = app.Workbooks.Open(r’E:PyCharm_WorkSpaceaaaa111.xlsx’)
sht = xl.Worksheets(1)
sht.Rows(4).Insert()
xl.Save()
xl.Close(SaveChanges=0)
我说的 win32com 居然被无视了,只能上代码了。之前我也有类似 12l 的需求