python如何清空excel表格_Python-Excel-03-对已存在Excel:批量赋值,清空单元格

系统:Windows 7

语言版本:Anaconda3-4.3.0.1-Windows-x86_64

编辑器:pycharm-community-2016.3.2这个系列讲讲Python对Excel的操作

今天讲讲win32com模块对已有Excel文件的操作:批量赋值,清空单元格

Part 1:示例说明给示例工作表,第1行1-5列,分别赋值1,2,3,4,5;第2行1-5列,分别赋值6,7,8,9,10如果大家有试过,采用上1讲中的方法,逐一赋值,当数据量较多时,会非常慢

本文采用的批量赋值方法,速度提升非常明显

清空第2行1-3列数据

Part 2:代码

批量赋值import os

import win32com

from win32com.client import constants as c # 旨在直接使用VBA常数

current_address = os.path.abspath('.')

excel_address = os.path.join(current_address, "示例.xlsx")

print(current_address)

xl_app = win32com.client.gencache.EnsureDispatch("Excel.Application") # 若想引用常数的话使用此法调用Excel

xl_app.Visible = False # 是否显示Excel文件

wb = xl_app.Workbooks.Open(excel_address)

sht = wb.Worksheets(1)

sht.Name = "示例"# 批量赋值

list_1 = [1, 2, 3, 4, 5]

list_length = len(list_1)

sht.Range(sht.Cells(1, 1), sht.Cells(1, list_length)).Value = list_1list_2 = [6, 7, 8, 9, 10]

list_length = len(list_2)

sht.Range(sht.Cells(2, 1), sht.Cells(2, list_length)).Value = list_2wb.Save()

wb.Close()

代码截图

执行结果

清空单元格

在运行之前,先给单元格加点底色,效果如图import os

import win32com

from win32com.client import constants as c # 旨在直接使用VBA常数

current_address = os.path.abspath('.')

excel_address = os.path.join(current_address, "示例.xlsx")

print(current_address)

xl_app = win32com.client.gencache.EnsureDispatch("Excel.Application") # 若想引用常数的话使用此法调用Excel

xl_app.Visible = False # 是否显示Excel文件

wb = xl_app.Workbooks.Open(excel_address)

sht = wb.Worksheets(1)

sht.Name = "示例"

rng_1 = sht.Range(sht.Cells(2, 1), sht.Cells(2, 3))

rng_1.Value = ""

rng_1.Interior.Pattern = c.xlNone

rng_1.Interior.TintAndShade = 0

rng_1.Interior.PatternTintAndShade = 0

wb.Save()

wb.Close()

代码截图

执行结果

不但清空了数值,也清空了底色

Part 3:部分代码解读这里清空单元格,其实只是将空值赋给对应单元格

rng_1.Interior.Pattern = c.xlNone这一段代码其实是在Excel录制宏中录制的,只是在xlNone前加上c,这样就可以正常引用Excel中常数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值