项目进行到实验三了,继续python操作excel
1. python跳出双重循环
在二维数组的遍历中,我们经常使用双层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
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. 设置自动换行/自动调整行高
range("a1").WrapText = True #自动换行
Selection.Rows.AutoFit # 自动调整行高
Worksheets("Sheet1").Columns("A:I").AutoFit
! excel录制宏查看VBA代码
首先明确录制宏
这个选项的位置:
在office2013版本中,是位于 视图
->宏
->查看宏/录制宏
8. pywin32 通过python调用excel使用公式
如果公式位置是确定的,直接在excel表里写死是最简单的,如果不确定,再考虑使用代码完成。
授人以鱼不如授人以渔:
现在面对通过pywin32调用python来操作excel这个问题,首先去搜索 “如何使用vba完成XX” 找到完成相关功能的函数,再去MSDN搜索对应的文档就好了
例如:
- 搜索
VBA 公式
- 搜索
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%"