项目进行到实验三了,继续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 规范与限制:所以支持的科学计数法的精度还是很高的。

python exce循环l按行读取数据 python excel 循环_python

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

python exce循环l按行读取数据 python excel 循环_python_02


参考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版本中,是位于 视图->->查看宏/录制宏

python exce循环l按行读取数据 python excel 循环_VBA_03

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

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

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

例如:

  1. 搜索VBA 公式
    python exce循环l按行读取数据 python excel 循环_python_04

  2. 搜索MSDN excel formula:
    参考Docs/Office VBA Reference/Excel/Object model/Range object/Properties/ Formula/ 和搜到的博客差不多,反正后面值是用字符串形式表示的。

    除了Formula属性,还有这些是和公式相关的属性。

9. 关于自定义数据格式

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

比如:小数前面自动添加一个"+"加号

选中需要被格式化的单元格区域,然后直接在类型下面的文本框 输入 +0.00;-0.00;0 然后确定就可以

python exce循环l按行读取数据 python excel 循环_python_05

最后效果就类似:(输入一个数,但是显示的时候前面会多一个加号。)

python exce循环l按行读取数据 python excel 循环_VBA_06

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

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

ws.Range("C11").NumberFormat = "0.000%"