iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何利用Python批量处理行、列和单元格详解
  • 582
分享到

如何利用Python批量处理行、列和单元格详解

2024-04-02 19:04:59 582人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录精确调整工作表的行高和列宽批量更改多个工作簿的数据格式批量更改工作簿的外观格式设置字体格式修改字体为宋体修改字号字体加粗字体颜色单元格填充颜色对齐方式添加合适粗细的边框替换工作簿

精确调整工作表的行高和列宽

步骤

  1. 打开工作簿。
  2. 遍历所有工作表

核心代码


for i in workbook.sheets:
	value = i.range('A1').expand('table')
	value.column_width = 12
	value.row_height = 20
workbook.save()

批量更改多个工作簿的数据格式

步骤:

  1. 列出文件夹中所有子文件
  2. 遍历打开子文件
  3. 遍历工作表
  4. 获取工作表的最后一行
  5. 将指定列从上到下修改

核心代码


#遍历工作表
for j in workbook.sheets:
	# 获取最后一行
	row_num = j['A1'].current_region.last_cell.row
	# 数据格式修改
	j['A2:A{}'.fORMat(row_num)].number_format = 'm/d'
	j['D2:D{}'.format(row_num)].number_format = '¥#,##0.00'
workbook.save()
workbook.close()

使用xwings模块中的number format属性来设置单元格区域中数据的格式。该属性的取值为一个代表特定格式的字符串,与excel的“设置单元格格式”

对话框中“数字”选项卡下设置的格式对应。

批量更改工作簿的外观格式

难点应该是外观格式如何更改了吧,这里介绍一些常用的外观格式。

j 是工作表

设置字体格式

修改字体为宋体


j['A1:H1'].api.Font.Name = '宋体'

修改字号


j['A1:H1'].api.Font.Size= 10  # 10磅

字体加粗


j['A1:H1'].api.Font.Bold= True  

字体颜色


# 白色
j['A1:H1'].api.Font.Color= xw.utils.rgb_to_int((255,255,255)) 

单元格填充颜色


# 填充颜色为黑色
j['A1:H1'].Color= xw.utils.rgb_to_int((0,0,0)) 

对齐方式


# 水平对齐方式为 居中
j['A1:H1'].api.HorizontalAlignment = xw.constants.HAlign.xlHAlignCenter

# 垂直对齐方式为 居中
j['A1:H1'].api.VerticalAlignment= xw.constants.VAlign.xlVAlignCenter

以上是一列的如果是正文,j['A1:H1']变成 j['A2'].expand('table') 就可以了

添加合适粗细的边框


# 遍历所有的单元格
for cell in j['A1'].expand('table'):
	for b in range(7,12):
		# 设置单元格的边框线型
		cell.api.Borders(b).LineStyle = 1
		# 设置单元格的边框粗细
		cell.api.Borders(b).Weight = 2

替换工作簿的行数据

核心代码


# 遍历工作表
for j in eorkbook.sheets:
	# 获取工作表数据
	value = j['A2'].expand('table').value
	#按行遍历工作表数据
	for index,val in enumerate(value):
		# 判断行数据是否是这个
		if val == ['背包',16,65]:
			# 是的话替换为新数据
			value[index] = ['双肩包',36,79]
	#将完成替换的数据写入工作表中
	j['A2'].expand('table').value = value
workbook.save()

enumerate()是python的内置函数,用于将一个可遍历的数据对象(如列表、元组或字符串等)组合为一个索引序列,可同时得到数据对象的索引及对应的值,一般用在for语句当中。该函数的语法格式和常用参数含义如下。


enumerate(sequenxe,[start=0])
# start 是索引的起始位置

如果是修改指定行什么办呢?因为列是在行的第几个单元格中我们可以按如下代码进行修改


#按行遍历工作表数据
for index,val in enumerate(value):
	# 修改第三个单元格,即第index行,第 3列,下标是从0开始的
	val[2] = val[2] + 1
	# 替换整行数据
	value[index] = val

提取指定数据


import xlwings as xw
import pandas as pd
app = xw.App(visible = False, add_book = False) 
workbook = app.books.open('采购表.xlsx')  
worksheet = workbook.sheets
data = []
for i in worksheet:
    values = i.range('A1').expand().options(pd.DataFrame).value
    # 一次性提取工作表中所有符合条件的行数据
    filtered = values[values['采购物品'] == '复印纸'] 
    if not filtered.empty: 
        data.append(filtered)
new_workbook = xw.books.add() 
new_worksheet = new_workbook.sheets.add('复印纸') 
new_worksheet.range('A1').value = pd.concat(data, ignore_index = False) 
new_workbook.save('复印纸.xlsx')
workbook.close()
app.quit()

提取列数据


import xlwings as xw
import pandas as pd
app = xw.App(visible = False, add_book = False) 
workbook = app.books.open('采购表.xlsx')
worksheet = workbook.sheets 
column = ['采购日期', '采购金额']
data = []
for i in worksheet:
    values = i.range('A1').expand().options(pd.DataFrame, index = False).value
    filtered = values[column]  
    data.append(filtered)
new_workbook = xw.books.add()  
new_worksheet = new_workbook.sheets.add('提取数据') 
new_worksheet.range('A1').value = pd.concat(data, ignore_index = False).set_index(column[0])
new_workbook.save('提取表.xlsx') 
workbook.close()
app.quit()

追加行数据


import os
import xlwings as xw
newContent = [['双肩包', '64', '110'], ['腰包', '23', '58']]
app = xw.apps.add()
file_path = '分部信息'  
file_list = os.listdir(file_path)  
for i in file_list:  
    if os.path.splitext(i)[1] == '.xlsx':  
        workbook = app.books.open(file_path + '\\' + i)  
        worksheet = workbook.sheets['产品分类表']
        values = worksheet.range('A1').expand()
        number = values.shape[0]  
        worksheet.range(number + 1, 1).value = newContent  
        workbook.save()
        workbook.close()
app.quit()

提取所有工作表的唯一值


import xlwings as xw
app = xw.App(visible = True, add_book = False)
workbook = app.books.open('上半年销售统计表.xlsx')
data = []
for i, worksheet in enumerate(workbook.sheets):
    values = worksheet['A2'].expand('down').value
    data = data + values
data = list(set(data))
data.insert(0, '书名')
new_workbook = xw.books.add()
new_worksheet = new_workbook.sheets.add('书名')
new_worksheet['A1'].options(transpose = True).value = data
new_worksheet.autofit()
new_workbook.save('书名.xlsx')
workbook.close()
app.quit()

总结

到此这篇关于如何利用Python批量处理行、列和单元格的文章就介绍到这了,更多相关Python批量处理行、列和单元格内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何利用Python批量处理行、列和单元格详解

本文链接: https://www.lsjlt.com/news/134755.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何利用Python批量处理行、列和单元格详解
    目录精确调整工作表的行高和列宽批量更改多个工作簿的数据格式批量更改工作簿的外观格式设置字体格式修改字体为宋体修改字号字体加粗字体颜色单元格填充颜色对齐方式添加合适粗细的边框替换工作簿...
    99+
    2024-04-02
  • 如何利用bat批处理批量替换字符串
    本篇内容主要讲解“如何利用bat批处理批量替换字符串”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何利用bat批处理批量替换字符串”吧!在windows上跑case时,我用它来替换xml文档中...
    99+
    2023-06-08
  • 如何利用python实现图片批处理
    前言 在训练神经网络之前,我们往往需要对数据集进行批量处理。本文以图片为例,介绍如何使用python实现图片的批量处理,包括批量命名,批量更改图像像素,批量对图片进行Harris、C...
    99+
    2024-04-02
  • 如何使用python对图片进行批量压缩详解
    目录前言使用Python和Pillow模块压缩图片1、优化flag2、渐进式JPEG3、JPEG动态质量使用Python和Selenium模块操纵Squoosh批量压缩图片Pytho...
    99+
    2024-04-02
  • 如何利用MySQL和C++开发一个简单的批量解压功能
    如何利用MySQL和C++开发一个简单的批量解压功能概述:在现代计算机领域,文件的解压常常是一个重要功能,尤其当需要批量解压大量文件时。本文将介绍如何利用MySQL和C++开发一个简单的批量解压功能,并提供具体的代码示例。准备工作在开始之前...
    99+
    2023-10-22
    MySQL C++ 批量解压功能
  • 如何利用Python和Numpy进行高效数据处理?
    当今时代,数据处理已经成为了各个行业的必备技能。而Python和Numpy作为数据科学领域中最受欢迎的工具之一,它们的高效性和易用性已经得到了广泛的认可。在本文中,我们将会介绍一些Python和Numpy的高效数据处理技巧,并且会穿插一些演...
    99+
    2023-08-11
    日志 numy load
  • 如何利用Python代码批量将PDF文件转为Word格式
    本篇文章给大家分享的是有关如何利用Python代码批量将PDF文件转为Word格式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在日常工作或学习中,经常会遇到这样的无奈:“小任...
    99+
    2023-06-17
  • 如何使用批处理文件生成文件列表清单
    小编给大家分享一下如何使用批处理文件生成文件列表清单,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!方法:先进入文件目录下,建立一个.txt格式的纯文档文件。在这个...
    99+
    2023-06-08
  • 如何使用BAT批处理和VBScript批量安装字体脚本
    这篇文章主要介绍“如何使用BAT批处理和VBScript批量安装字体脚本”,在日常操作中,相信很多人在如何使用BAT批处理和VBScript批量安装字体脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使...
    99+
    2023-06-08
  • 如何利用Python处理excel表格中的数据
    目录一、基础、常用方法二、提高三、出错总结一、基础、常用方法 1. 读取excel 1、导入模块: import xlrd 2、打开文件: x1 = xlrd.open_workb...
    99+
    2024-04-02
  • 详解如何利用Xtrabackup进行mysql增量备份
    目录利用Xtrabackup进行mysql增量备份安装设置数据库用于备份账户全量备份增量备份提问总结原理为什么最后一次增量备份不用 "--apply-log-only"为什么备份完后要准备备份 &qu...
    99+
    2024-04-02
  • webpack4.0+vue2.0如何利用批处理生成前端单页或多页应用
    这篇文章将为大家详细讲解有关webpack4.0+vue2.0如何利用批处理生成前端单页或多页应用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。批处理前端现在在做项目的时...
    99+
    2024-04-02
  • 一文详解如何使用Python批量拼接图片
    目录前言〇、准备工作,PIL库安装使用pip安装一、简单程序实现二、更复杂情况总结前言 当需要将多张图像拼接成一张更大的图像时,通常会用到图片拼接技术。这种技术在许多领域中都有广泛的...
    99+
    2023-05-19
    python多图拼接 python拼接图片 python图片拼图
  • 如何利用MySQL和C++开发一个简单的批量加密功能
    要利用MySQL和C++开发一个简单的批量加密功能,可以按照以下步骤进行:1. 创建一个MySQL数据库,用于存储待加密的数据。在数...
    99+
    2023-10-21
    MySQL
  • 如何利用Python和OpenCV对图像进行加水印详解
    目录前言🌌 第 1 步:导入 OpenCV 并读取logo和要应用水印的图像💨 第 2步:计算两个图像的高度和宽度🚀 第 3 步:将水...
    99+
    2024-04-02
  • 如何用VBS和bat批处理逐行读取文件
    这篇文章主要介绍“如何用VBS和bat批处理逐行读取文件”,在日常操作中,相信很多人在如何用VBS和bat批处理逐行读取文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用VBS和bat批处理逐行读取文件...
    99+
    2023-06-08
  • 详解Python如何批量检查图像是否可用
    数据集中的图像,一般不可用在以下3个方面: 1.图像过小 2.无法打开 3.“Premature end of JPEG file” 这些图像可能会导致模型的...
    99+
    2024-04-02
  • 批处理如何利用HOSTS文件屏蔽和加速网站
    这篇文章主要为大家展示了“批处理如何利用HOSTS文件屏蔽和加速网站”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“批处理如何利用HOSTS文件屏蔽和加速网站”这篇文章吧。代码如下:@echo o...
    99+
    2023-06-08
  • 教你如何利用Python批量翻译英文Word文档并保留格式
    目录一、需求描述二、逻辑梳理2.1 翻译 API2.2 格式修改2.2.1 页面样式2.2.2 段落样式2.2.3 文字块样式修改2.3 整体实现步骤三、代码实现一、需求描...
    99+
    2024-04-02
  • 如何利用MySQL和C++开发一个简单的批量重命名功能
    要利用MySQL和C++开发一个简单的批量重命名功能,你可以按照以下步骤进行:1. 创建一个数据库表格来保存文件名和新文件名的映射关...
    99+
    2023-10-10
    MySQL
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作