pywin32+excel(三)——python通过pywin32操作excel

项目进行到实验三了,继续python操作excel

1. python跳出双重循环

参考python跳出双层for循环的解决方法

在二维数组的遍历中,我们经常使用双层for循环。在某些时候,我们并不需要遍历整个二维数组。当条件满足时就应该终止for循环。但是,直接在内层循环中break并不会让外层循环也终止。

可以使用for...else...语法解决。

for i in range(5):
  for j in range(5):
    print(i, j)
    if i == 3 and j == 3:
      break
  else:
    continue
  break

当次循环正常结束的时候才会执行else中的语句(如果当次循环执行了break,那么else不会执行)。注意:for j的else中的continue是对for i起作用的,而不是for j。

2. python判断Null

参考Python判断字符串是否为空和null方法实例

3. excel支持的数据精度

首先需要明确excel支持的数据精度

参考Excel 规范与限制:所以支持的科学计数法的精度还是很高的。

在这里插入图片描述

4. pywin32复制一个excel表中的部分到另一个excel表中。

在这里插入图片描述
参考excel中VBA怎么录制表格1中的内容复制到表格2?
这些都是一个工作簿中不同的工作表,我面对的是不同工作簿,所以相对来说,要用pywin32打开两个excel进程,相对来说程序出问题的概率就比较大,所以还是不采用复制的方式。

还是手动代码写入吧。

5. 提取字符串中的数字部分

re.match(r'\d*\.*\d*', keyData['value'])[0]

6. pywin32 单元格Value中加入换行符

直接在需要加入换行符的地方,注意,不需要\\n

ws.Range("B11").Value="XXXX \n XXXX"

7. 设置自动换行/自动调整行高

参考VBA设置列宽和自动换行

range("a1").WrapText = True  #自动换行
Selection.Rows.AutoFit # 自动调整行高

Worksheets("Sheet1").Columns("A:I").AutoFit

参考Range.AutoFit 方法 (Excel)

! excel录制宏查看VBA代码

首先明确录制宏这个选项的位置:
在office2013版本中,是位于 视图->->查看宏/录制宏
在这里插入图片描述

8. pywin32 通过python调用excel使用公式

如果公式位置是确定的,直接在excel表里写死是最简单的,如果不确定,再考虑使用代码完成。

授人以鱼不如授人以渔
现在面对通过pywin32调用python来操作excel这个问题,首先去搜索 “如何使用vba完成XX” 找到完成相关功能的函数,再去MSDN搜索对应的文档就好了

例如:

  1. 搜索VBA 公式
    参考VBA|输入公式和使用函数
    在这里插入图片描述
  2. 搜索MSDN excel formula:
    参考Docs/Office VBA Reference/Excel/Object model/Range object/Properties/ Formula/在这里插入图片描述
    和搜到的博客差不多,反正后面值是用字符串形式表示的。
    在这里插入图片描述
    除了Formula属性,还有这些是和公式相关的属性。

9. 关于自定义数据格式

仅列出一些我项目中遇到的

比如:小数前面自动添加一个"+"加号
选中需要被格式化的单元格区域,然后直接在类型下面的文本框 输入 +0.00;-0.00;0 然后确定就可以
在这里插入图片描述
最后效果就类似:(输入一个数,但是显示的时候前面会多一个加号。)在这里插入图片描述

10. 代码设置百分数的小数位数

使用录制宏的方式,可知,关键部分的设置代码为

ws.Range("C11").NumberFormat = "0.000%"
可以使用pywin32来设置Excel的列宽。可以通过以下代码来实现: ``` import win32com.client as win32 # 创建Excel应用程序对象 excel = win32.gencache.EnsureDispatch('Excel.Application') excel.Visible = True # 打开工作簿 workbook = excel.Workbooks.Open("路径/文件名.xlsx") # 选择工作表 worksheet = workbook.Worksheets("Sheet1") # 设置列宽 worksheet.Columns("A:I").ColumnWidth = 15 # 保存并关闭工作簿 workbook.Save() workbook.Close() # 退出Excel应用程序 excel.Quit() ``` 在这个代码中,我们使用`win32com.client`库创建了Excel应用程序对象并打开了指定的工作簿。然后,我们选择了要设置列宽的工作表,并使用`Columns`属性来设置列的宽度。在这个例子中,我们将列宽设置为15。最后,我们保存并关闭工作簿,退出Excel应用程序。 请注意,你需要将路径/文件名.xlsx替换为你要操作的实际文件路径和文件名。此外,你可能需要安装`pywin32`库,可以使用`pip install pywin32`来安装。 引用了中的内容,提供了设置列宽的具体代码以满足用户问题。123 #### 引用[.reference_title] - *1* *2* *3* [pywin32+excel)——python通过pywin32操作excel](https://blog.csdn.net/Castlehe/article/details/109811198)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吨吨不打野

解决了问题,觉得还行就给点

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值