Python对Excel的操作(模块win32com)

前言:

  我在编写对加密的xlsm格式的文件进行读数据操作,总结的内容和遇到问题。

使用win32com写入Excel时注意,一定要退出Excel,否则下次运行会出错!

 1 import win32com.client as win32
 2 import os
 3 excel = win32.gencache.EnsureDispatch('Excel.Application')
 4 #只接受绝对路径
 5 ABSPATH = os.path.abspath(os.path.dirname(__file__))
 6 password = 'password'
 7 workbook = excel.Workbooks.Open(os.path.join(ABSPATH,'output_file.xlsx'),False,True,None,Password = password)
 8 #获得工作表
 9 wb_sheet = workbook.Worksheets(1)
10 #获取sheet的名字
11 sheet_name = workbook.Sheets[1].Name
12 #计算文件中实际有内容的行数
13 num_wb = wb_sheet.UsedRange.Rows.Count
14 #保存工作薄
15 workbook.Save()
16 #退出Excel
17 excel.Application.Quit()

将程序打包时运行出错:

错误:

NameError: name '__file__' is not defined

解决办法:

1 import os.path
2 
3 try:
4     ABSPATH = os.path.abspath(os.path.dirname(__file__))
5 except NameError:  # We are the main py2exe script, not a module
6     import sys
7     ABSPATH = os.path.abspath(os.path.dirname(sys.argv[0]))

参考:https://wenku.baidu.com/view/0bf12814102de2bd970588b9.html

   https://stackoverflow.com/questions/24140593/python-nameerror-name-file-is-not-defined

原文地址:https://www.cnblogs.com/rn-05181226-rw/p/7201180.html