文章目录

  • 序言
  • 1 Excel基本操作
  • 2 合并单元格、取消单元格
  • 3 对齐,数据格式设置
  • 4 边框设置,背景填充
  • 5 函数使用(自动求和...)
  • 6 数据转化为图表

序言

Excel官方文档

1 Excel基本操作

获得行列基本信息,设置行列宽度,高度,字体等。

#!/usr/bin/env python3
# -*- coding:GBK -*-import  win32com.client
import  os, sys, logging,re
from    logging import  debug, info#logging.basicConfig( level = logging.DEBUG, format = '[%(filename)s %(lineno)d ] %(message)s')
logging.basicConfig( level = logging.DEBUG, format = ' %(message)s')def get_full_name(name):if ':' in name:return name else:name = os.path.join(os.getcwd(), name)return nameclass  Excel(object):def  __init__(self, filename ):self.filename   = get_full_name(filename)self.sheetcount = 0def open(self, name=''):if(name!=''): self.filename = os.path.join(os.getcwd(), name )self.excel =  win32com.client.Dispatch("Excel.Application")#可见self.excel.Visible = 1 #book self.excelbook = self.excel.Workbooks.Open(self.filename, ReadOnly=False)info("open  excel: %s",  self.filename )self.sheet =  self.excelbook.Worksheets(self.excelbook.Worksheets.Count)#self.excel.Workbooks.Add()self.sheetcount = 1##info( self.sheet.cells( 3,1).Value )  #行,列for i  in range(1,10):self.sheet.cells( i,3).Value  = "hello world "+str(i)#获取一列数据self.sheet.Columns(1).Font.Bold = True  #第一列加粗self.sheet.Columns(1).Font.Name = "宋体" #字体self.sheet.Columns(1).Font.Color = -16776961  #字体颜色#设置列宽print("列宽: ", self.sheet.Columns(1).ColumnWidth )self.sheet.Columns(3).ColumnWidth = 30  #设置列宽info("已经使用行数count : %s"%self.sheet.usedrange.rows.count )info("已经使用列数count : %s"%self.sheet.usedrange.columns.count )#获得一行数据#info( self.sheet.Rows(1) )self.sheet.Rows(1).RowHeight = 30   #设置行高度def new_sheet(self, name=''):if (self.sheetcount == 0):  self.open()#operate first sheet self.sheet = self.excel.Worksheets.Add(None, self.sheet, 1) # (Before、After、Count、Type )if ''!= name:  self.sheet.Name =  name return  self.sheetdef save(self):info('saving excel: %s'%self.filename)def close(self):info("close excel: %s "%(self.filename))if  __name__ == '__main__':test = Excel('1.xlsx')test.open()# test.new_sheet()# test.new_sheet()test.close()

效果如下:

2 合并单元格、取消单元格

#!/usr/bin/env python3
# -*- coding:GBK -*-import  win32com.client
import  os, sys, logging,re
from    logging import  debug, info#logging.basicConfig( level = logging.DEBUG, format = '[%(filename)s %(lineno)d ] %(message)s')
logging.basicConfig( level = logging.DEBUG, format = ' %(message)s')def RGB(r,g,b):#奇怪的玩意和普通值反过来的return int("%02x%02x%02x"%(b,g,r), 16)def get_full_name(name):if ':' in name:return name else:name = os.path.join(os.getcwd(), name)return nameclass  Excel(object):def  __init__(self, filename ):self.filename   = get_full_name(filename)self.sheetcount = 0def open(self, name=''):if(name!=''): self.filename = os.path.join(os.getcwd(), name )self.excel =  win32com.client.Dispatch("Excel.Application")#可见self.excel.Visible = 1 #book self.excelbook = self.excel.Workbooks.Open(self.filename, ReadOnly=False)info("open  excel: %s",  self.filename )self.sheet =  self.excelbook.Worksheets(self.excelbook.Worksheets.Count)#self.excel.Workbooks.Add()self.sheetcount = 1##info( self.sheet.cells( 3,1).Value )  #行,列for i  in range(1,10):self.sheet.cells( i,3).Value  = "hello"+str(i)# self.sheet.Columns(3).HorizontalAlignment  = -4152  #水平居中:  -4108  靠右边: -4152   靠左:-4131 # self.sheet.Columns(3).VerticalAlignment    = -4108  #垂直方向# 水平靠右self.sheet.Range("A1:C9").HorizontalAlignment = -4152# 垂直居中self.sheet.Range("A1:C9").VerticalAlignment   = -4108#合并单元格  B1,C1个单元格  Mergeself.sheet.Range("B1:D1").Merge(True) #拆分单元格 UnMergeself.sheet.Range("B1").UnMerge()   #数据放在B1self.sheet.Range("C1").UnMerge()   #数据放在C1#合并列一类类似调整Range范围即可if  __name__ == '__main__':test = Excel('1.xlsx')test.open()

3 对齐,数据格式设置

水平对齐
垂直对齐

#!/usr/bin/env python3
# -*- coding:GBK -*-import  win32com.client
import  os, sys, logging,re
from    logging import  debug, info#logging.basicConfig( level = logging.DEBUG, format = '[%(filename)s %(lineno)d ] %(message)s')
logging.basicConfig( level = logging.DEBUG, format = ' %(message)s')def RGB(r,g,b):#奇怪的玩意和普通值反过来的return int("%02x%02x%02x"%(b,g,r), 16)def get_full_name(name):if ':' in name:return name else:name = os.path.join(os.getcwd(), name)return nameclass  Excel(object):def  __init__(self, filename ):self.filename   = get_full_name(filename)self.sheetcount = 0def open(self, name=''):if(name!=''): self.filename = os.path.join(os.getcwd(), name )self.excel =  win32com.client.Dispatch("Excel.Application")#可见self.excel.Visible = 1 #book self.excelbook = self.excel.Workbooks.Open(self.filename, ReadOnly=False)info("open  excel: %s",  self.filename )self.sheet =  self.excelbook.Worksheets(self.excelbook.Worksheets.Count)#self.excel.Workbooks.Add()self.sheetcount = 1##info( self.sheet.cells( 3,1).Value )  #行,列for i  in range(1,10):self.sheet.cells( i,3).Value  = "hello"+str(i)# self.sheet.Columns(3).HorizontalAlignment  = -4152  #水平居中:  -4108  靠右边: -4152   靠左:-4131 # self.sheet.Columns(3).VerticalAlignment    = -4108  #垂直方向# 水平靠右self.sheet.Range("A1:C9").HorizontalAlignment = -4152# 垂直居中self.sheet.Range("A1:C9").VerticalAlignment   = -4108if  __name__ == '__main__':test = Excel('1.xlsx')test.open()

4 边框设置,背景填充

Range对象

#!/usr/bin/env python3
# -*- coding:GBK -*-import  win32com.client
import  os, sys, logging,re
from    logging import  debug, info#logging.basicConfig( level = logging.DEBUG, format = '[%(filename)s %(lineno)d ] %(message)s')
logging.basicConfig( level = logging.DEBUG, format = ' %(message)s')def RGB(r,g,b):#奇怪的玩意和普通值反过来的return int("%02x%02x%02x"%(b,g,r), 16)def get_full_name(name):if ':' in name:return name else:name = os.path.join(os.getcwd(), name)return nameclass  Excel(object):def  __init__(self, filename ):self.filename   = get_full_name(filename)self.sheetcount = 0def open(self, name=''):if(name!=''): self.filename = os.path.join(os.getcwd(), name )self.excel =  win32com.client.Dispatch("Excel.Application")#可见self.excel.Visible = 1 #book self.excelbook = self.excel.Workbooks.Open(self.filename, ReadOnly=False)info("open  excel: %s",  self.filename )self.sheet =  self.excelbook.Worksheets(self.excelbook.Worksheets.Count)#self.excel.Workbooks.Add()self.sheetcount = 1##info( self.sheet.cells( 3,1).Value )  #行,列for i  in range(1,10):self.sheet.cells( i,3).Value  = "hello world "+str(i)self.sheet.Columns(3).AutoFit() #自动调整列宽#获取一列数据self.sheet.Columns(1).Font.Bold = True  #第一列加粗self.sheet.Columns(1).Font.Name = "宋体" #字体self.sheet.Columns(1).Font.Color = RGB(0,255,0) #字体颜色  #设置边框等信息rg = self.sheet.Range( self.sheet.Cells( 1, 1 ), self.sheet.Cells(9,3)  ) #获得一个Range对象#rg = self.sheet.Range("A1:C9")   #获得一个Range对象rg.BorderAround( 1, 4 )          #边框线样式,线的粗细rg.Borders.Color  = RGB(0,0,0)   #边框线颜色rg.interior.color = RGB(255,0,0) #填充颜色def save(self):info('saving excel: %s'%self.filename)def close(self):info("close excel: %s "%(self.filename))if  __name__ == '__main__':test = Excel('1.xlsx')test.open()test.close()

5 函数使用(自动求和…)

只能说官方文档还是强大!!!基本想要的Excel操作基本可以找到。

#!/usr/bin/env python3
# -*- coding:GBK -*-import  win32com.client
import  os, sys, logging,re
from    logging import  debug, info#logging.basicConfig( level = logging.DEBUG, format = '[%(filename)s %(lineno)d ] %(message)s')
logging.basicConfig( level = logging.DEBUG, format = ' %(message)s')def RGB(r,g,b):#奇怪的玩意和普通值反过来的return int("%02x%02x%02x"%(b,g,r), 16)def get_full_name(name):if ':' in name:return name else:name = os.path.join(os.getcwd(), name)return nameclass  Excel(object):def  __init__(self, filename ):self.filename   = get_full_name(filename)self.sheetcount = 0def open(self, name=''):if(name!=''): self.filename = os.path.join(os.getcwd(), name )self.excel =  win32com.client.Dispatch("Excel.Application")#可见self.excel.Visible = 1 #book self.excelbook = self.excel.Workbooks.Open(self.filename, ReadOnly=False)info("open  excel: %s",  self.filename )self.sheet =  self.excelbook.Worksheets(self.excelbook.Worksheets.Count)#self.excel.Workbooks.Add()self.sheetcount = 1##  求第一列的和for i  in range(1,10):self.sheet.cells( i,1).Value  =  i#求和 ActiveSheet.Cells(2, 1).Formula = "=Sum(A1:A9)"self.sheet.Cells(10,1).Formula = "=Sum(A1:A9)"if  __name__ == '__main__':test = Excel('1.xlsx')test.open()

效果:

6 数据转化为图表

pywin32处理Excel相关推荐

  1. Python+pywin32操作Excel文件常用功能(268行代码+注释)

    全国高校教师Python课程高级研修班(线上,11月20-21日) 中国大学MOOC"Python程序设计基础"第5次开课 推荐图书: <Python程序设计(第3版)> ...

  2. Pywin32操作Excel数据的类

    练习Pywin32操作Excel数据.学习https://blog.csdn.net/qdx411324962/article/details/44270455这篇博客后编写的内容.编写完成后进行测试 ...

  3. pywin32+excel(四)使用pywin32操作excel进阶

    在使用dll钩子注入目标程序获取数据后,得到存放数据的文本文件 文章目录 1. python调用exe 1.1 直接使用os.system( )来调用 1.2 使用subprocess.call() ...

  4. Python笔记:使用pywin32处理excel文件

    因为前端同事须要批量的对excel文件做特殊处理,删除指定行,故写了此脚本.同一时候配合config.ini方便不熟悉py的同事使用 #!/usr/bin/env python #-*- coding ...

  5. Python通过pywin32操作Excel

    欢迎关注微信公众号"Python小灶,和我一起每天学习Python新知识" 我的Github地址 需求 Excel现在已经成为生活工作中不可缺少的软件之一,如果你经常使用此软件,或 ...

  6. Pywin32操控Excel——1. 基础操作

    介绍 pywin32是一个方便Python开发者快速调用Windows API的第三方模块库,在这边我们只学习关于操控Excel的部分,而且不会讲的很全,只是对于openpyxl缺点部分进行补充. 安 ...

  7. 利用 pywin32 操作 excel

    1 from win32com.client import Dispatch 2 import win32com.client 3 import time 4 5 # 获取excel 对象 6 7 e ...

  8. Pywin32操控Excel——3. 打印设置

    导入模块 import win32com.client import win32con 设置打印区域 worksheet.PageSetup.PrintArea = '$A$1:$C$24' 设置顶端 ...

  9. python使用 pywin32 模块操作 excel,Python 操作 excel 系列之五

    本篇博客是 Python 操作 excel 系列的第5篇,前4篇博客阅读地址如下所示: 2022 之Python操作 Excel,xlrd 与 xlwt 模块一文掌握 Python 操作 Excel, ...

最新文章

  1. java获得单元格的值_java – 从单元格值Apache POI获取单元格索引
  2. 我的存储解决方案理论
  3. 从责任界定和问题预警角度 解读全栈溯源对DevOps的价值
  4. 【2018.4.7】模拟赛之一-ssl2382 K好数【数位dp】
  5. 学不会的JAVA,消不了的忧愁! 1
  6. 微信公众平台无法使用支付宝收付款的解决方案
  7. 包机制、阿里巴巴开发手册
  8. 数据库周刊 | DBA 核心技能
  9. c 抄了java 多少东西,几款Java开发者必备常用的工具,准点下班不在话下
  10. User-Item协同自回归模型的协同过滤
  11. android与php mysql_手把手教你android通过PHP操作Mysql(1)
  12. 小程序商城框架源码 小程序源码带前端+后台+数据库
  13. Python 标准库一览(Python进阶学习)
  14. Java基础——链表
  15. html背景音乐怎么连续,如何在主页中制作连续的背景音乐_html网页培训
  16. 百度首次元宇宙里开大会,李彦宏:智能交通将使5年内一线城市不再限购限行...
  17. python:小鱼的航程
  18. 机器学习中的距离公式
  19. substance painter中的粒子笔刷重力方向错乱问题
  20. 2021年小组年会总结

热门文章

  1. Loss.backward()
  2. live555库安装_live555生成库文件
  3. Java大作业-商品管理系统
  4. 全志F1C芯片参数对比,供查阅
  5. 逻辑回归中常用的概念: WOE、IV详解
  6. 漫画绘图软件MediBang Paint Pro 27.2中文版
  7. android-gpuimage-plus
  8. c语言三角形判定条件,c语言判定三角形的各种类型——请大家指点
  9. 如何查看浏览器http请求协议
  10. Map--HashMap实现分析