python用win32com处理excel表格

简介:

 今天一同事让处理一个excel,把一个excel里固定位置的内容读取写到另一个excel中的固定位置里,查了一些资料,python有好多处理excel的模块,对比之后感觉用win32com来处理这个问题比较简单,其中包含了处理文件路径和文件名字为中文的编码问题,下面是自己写的代码:


 
 
  1. #!/usr/bin/env python 
  2. # -*- coding: utf-8 -*- 
  3.  
  4. from win32com.client import constants,Dispatch 
  5. import os,sys,datetime,time,shutil 
  6.  
  7. class rw_excel: 
  8.  
  9.     def __init__(self): 
  10.         self.yesterday = (datetime.date.today() - datetime.timedelta(days=2)).strftime('%Y%m%d'
  11.         self.cwd = os.getcwd() 
  12.  
  13.     def read_excel(self): 
  14.         try
  15.             f = self.cwd + "\\" + self.yesterday + "\\" + u"汇总".encode("gbk") + "_" + self.yesterday + ".xlsx" 
  16.             print f 
  17.             f_open = (f) 
  18.             xlsApp = Dispatch("Excel.Application"
  19.             xlsApp.Visible = False 
  20.             xlsBook = xlsApp.Workbooks.Open(f_open) 
  21.             sheet_name = ('统计').decode("utf8"
  22.             xlsSht = xlsBook.Worksheets(sheet_name) 
  23.             R = [] 
  24.             open = [[2,2],[3,2],[4,2],[5,2],[6,2],[7,2],[8,2],[9,2],[10,2],[11,2],[12,2],[13,2],[14,2],[15,2]] 
  25.             for i in open: 
  26.                 a = xlsSht.Cells(i[0],i[1]).Value.encode("utf8"
  27.                 R.append(a) 
  28.             return R 
  29.         except Exception,e: 
  30.             print e 
  31.  
  32.     def write_excel(self,R): 
  33.         f = self.cwd + "\\" + self.yesterday + "\\" + u"数量汇总".encode("gbk") + "(GY)_" + self.yesterday + ".xls" 
  34.         print f 
  35.         f_save = (f) 
  36.         xlsApp = Dispatch("Excel.Application")    
  37.         xlsApp.Visible = False 
  38.         xlsBook = xlsApp.Workbooks.Open(f_save) 
  39.         sheet_name = ('数量汇总(GY)').decode("utf8"
  40.         xlsSht = xlsBook.Worksheets(sheet_name) 
  41.         save = [[2,5],[3,5],[6,5],[7,5],[9,5],[10,5],[12,5],[13,5],[14,5],[17,5],[18,5],[19,5],[20,5],[23,5]] 
  42.         for i in range(len(R)): 
  43.             xlsSht.Cells(save[i][0],save[i][1]).Value = R[i] 
  44.         xlsBook.Close(SaveChanges=1
  45.         xlsApp.Quit() 
  46.  
  47.     def main(self): 
  48.         R = self.read_excel() 
  49.         print "read_excel OK" 
  50.         self.write_excel(R) 
  51.         print "write_excel GY OK" 
  52.         print "Excel OK" 
  53.  
  54. class move: 
  55.  
  56.     def __init__(self): 
  57.         self.yesterday = (datetime.date.today() - datetime.timedelta(days=2)).strftime('%Y%m%d'
  58.         self.cwd = os.getcwd() 
  59.  
  60.     def copy(self,src, dst): 
  61.         if os.path.isdir(src): 
  62.             base = os.path.basename(src) 
  63.             if os.path.exists(dst): 
  64.                 dst = os.path.join(dst, base) 
  65.             if not os.path.exists(dst): 
  66.                 os.makedirs(dst) 
  67.             names = os.listdir(src) 
  68.             for name in names: 
  69.                 srcname = os.path.join(src, name) 
  70.                 self.copy(srcname, dst) 
  71.         else
  72.             shutil.copy2(src, dst) 
  73.  
  74.     def mk_dir(self): 
  75.         a = self.cwd + "\\" + u"处理名单_%s".encode("gbk") % self.yesterday + "\\" + u"处理名单(GY)_%s".encode("gbk") % self.yesterday 
  76.         print a 
  77.         if not os.path.isdir(a): 
  78.             os.makedirs(a) 
  79.         b = self.cwd + "\\" + u"处理名单_%s".encode("gbk") % self.yesterday + "\\" + u"处理名单(CS)_%s".encode("gbk") % self.yesterday 
  80.         print b 
  81.         if not os.path.isdir(b): 
  82.             os.makedirs(b) 
  83.         f = self.cwd + "\\" + self.yesterday + "\\" 
  84.         names = os.listdir(f) 
  85.         for name in names: 
  86.             if "txt" in name or "CS" in name: 
  87.                 self.copy(os.path.join(f,name),os.path.join(b,name)) 
  88.             else
  89.                 self.copy(os.path.join(f,name),os.path.join(a,name)) 
  90.         shutil.rmtree(f) 
  91.         print "Move ok" 
  92.  
  93.     def main(self): 
  94.         self.mk_dir() 
  95.  
  96. if __name__=="__main__"
  97.     boss = rw_excel() 
  98.     boss.main() 
  99.     boss = move() 
  100.     boss.main() 

以下是运行打印的结果:

 


本文转自 lover00751CTO博客,原文链接:http://blog.51cto.com/wangwei007/983488,如需转载请自行联系原作者

相关文章
|
SQL 自然语言处理 数据库
【Azure Developer】分享两段Python代码处理表格(CSV格式)数据 : 根据每列的内容生成SQL语句
本文介绍了使用Python Pandas处理数据收集任务中格式不统一的问题。针对两种情况:服务名对应多人拥有状态(1/0表示),以及服务名与人名重复列的情况,分别采用双层for循环和字典数据结构实现数据转换,最终生成Name对应的Services列表(逗号分隔)。此方法高效解决大量数据的人工处理难题,减少错误并提升效率。文中附带代码示例及执行结果截图,便于理解和实践。
349 5
|
8月前
|
人工智能 Java Linux
Python高效实现Excel转PDF:无Office依赖的轻量化方案
本文介绍无Office依赖的Python方案,利用Spire.XLS、python-office、Aspose.Cells等库实现Excel与PDF高效互转。支持跨平台部署、批量处理、格式精准控制,适用于服务器环境及自动化办公场景,提升转换效率与系统稳定性。
837 7
|
8月前
|
机器学习/深度学习 监控 数据挖掘
Python 高效清理 Excel 空白行列:从原理到实战
本文介绍如何使用Python的openpyxl库自动清理Excel中的空白行列。通过代码实现高效识别并删除无数据的行与列,解决文件臃肿、读取错误等问题,提升数据处理效率与准确性,适用于各类批量Excel清理任务。
719 0
|
数据处理 索引 Python
用Python实现数据录入、追加、数据校验并生成表格
本示例展示了如何使用Python和Pandas库实现学生期末考试成绩的数据录入、追加和校验,并生成Excel表格。首先通过`pip install pandas openpyxl`安装所需库,然后定义列名、检查并读取现有数据、用户输入数据、数据校验及保存至Excel文件。程序支持成绩范围验证,确保数据准确性。
746 14
|
10月前
|
移动开发 JavaScript
(H5查看CAD)网页CAD提取图纸表格到excel
本文介绍如何通过自定义MxCAD插件,在Web端智能识别CAD图纸中的表格,实现自动合并与高效导出至Excel,提升数据提取效率与准确性。内容涵盖区域选择、图形识别、表格结构重建、单元格合并及内容导出等关键技术,适用于工程图纸数据自动化处理场景。
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
2690 10
|
11月前
|
开发工具 Python
使用Python和OpenAPI将云上的安全组规则填写入Excel
本文介绍如何通过Python脚本自动化获取阿里云安全组及其规则信息,并将结果导出为Excel表格。相比CLI命令行方式,Python实现更高效、便捷,适用于需要批量处理和交付的场景。
使用Python和OpenAPI将云上的安全组规则填写入Excel
|
机器学习/深度学习 数据采集 数据可视化
Python数据分析,别再死磕Excel了!
Python数据分析,别再死磕Excel了!
499 2
|
存储 机器学习/深度学习 人工智能
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
本文探讨了多模态RAG系统的最优实现方案,通过模态特定处理与后期融合技术,在性能、准确性和复杂度间达成平衡。系统包含文档分割、内容提取、HTML转换、语义分块及向量化存储五大模块,有效保留结构和关系信息。相比传统方法,该方案显著提升了复杂查询的检索精度(+23%),并支持灵活升级。文章还介绍了查询处理机制与优势对比,为构建高效多模态RAG系统提供了实践指导。
2808 0
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本

推荐镜像

更多