excel 提供了多种选项来压缩、调整大小或移动图像,使用户能够有效地管理和优化电子表格。通过利用这些功能,您可以显著减小文件大小,调整图像尺寸以适应单元格,并轻松重新定位图像,以增强 excel 文档的视觉效果。本文将介绍如何使用 spire.xls for python 在 python 中以编程方式压缩、调整大小或移动 excel 文档中的图像。
安装 spire.xls for python
本教程需要 spire.xls for python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 vs code中。
pip install spire.xls
如果您不确定如何安装,请参考此教程: 如何在 vs code 中安装 spire.xls for python
python 在 excel 文档中压缩图像
spire.xls for python 提供了 excelpicture.compress() 方法来支持压缩图像的质量。以下是使用 spire.xls for python 在 excel 文档中压缩图像的步骤:
- 创建一个 workbook 对象。
- 使用 workbook.loadfromfile() 方法加载一个 excel 文件。
- 遍历文档中的工作表,并通过 worksheet.pictures 属性获取特定工作表中的图像。
- 从图像集合中获取特定图像,并使用 excelpicture.compress() 方法对其进行压缩。
- 使用 workbook.savetofile() 方法将工作簿保存到另一个 excel 文件中。
- python
from spire.xls import *
from spire.xls.common import *
# 创建一个workbook实例
workbook = workbook()
# 从文件加载名为"需压缩图片.xlsx"的excel文档
workbook.loadfromfile("需压缩图片.xlsx")
# 遍历每个工作表
for sheet in workbook.worksheets:
# 遍历工作表中的每个图片
for picture in sheet.pictures:
# 压缩图片,将质量设置为50(压缩比例)
picture.compress(50)
# 将带有压缩图片的工作簿保存为新的excel文件,使用excel版本2016格式
workbook.savetofile("压缩图片.xlsx", excelversion.version2016)
workbook.dispose()
python 调整 excel 工作表中的图像大小
可以通过 excelpicture.width 属性和 excelpicture.height 属性设置或获取图像的宽度和高度。要调整 excel 中的图像大小,请按照以下步骤进行操作:
- 创建一个 workbook 对象。
- 使用 workbook.loadfromfile() 方法加载 excel 文件。
- 通过 workbook.worksheets[index] 属性获取特定的工作表。
- 通过 worksheet.pictures[index] 属性从工作表中获取特定的图像。
- 通过 excelpicture.width 属性和 excelpicture.height 属性重设图像的尺寸。
- 使用 workbook.savetofile() 方法将工作簿保存到另一个 excel 文件中。
- python
from spire.xls import *
from spire.xls.common import *
# 创建一个workbook实例
workbook = workbook()
# 从文件加载名为"图片.xlsx"的excel文档
workbook.loadfromfile("图片.xlsx")
# 获取第一个工作表
sheet = workbook.worksheets[0]
# 获取第一个工作表中的第一个图片
picture = sheet.pictures[0]
# 将图片的宽度调整为原来的一半(转换为整数)
picture.width = (int)(picture.width / 2)
# 将图片的高度调整为原来的一半(转换为整数)
picture.height = (int)(picture.height / 2)
# 将带有重置图片大小的工作簿保存为新的excel文件,使用excel版本2016格式
workbook.savetofile("重置图片大小.xlsx", excelversion.version2016)
workbook.dispose()
python 在同一工作表中移动图像
可以通过 excelpicture.toprow 属性和 excelpicture.leftcolumn 属性设置或获取图像的起始位置。要在同一工作表中移动图像,请按照以下步骤进行操作:
- 创建一个 workbook 对象。
- 使用 workbook.loadfromfile() 方法加载一个 excel 文件。
- 通过 workbook.worksheets[index] 属性获取特定的工作表。
- 通过 worksheet.pictures[index] 属性从工作表中获取特定的图像。
- 通过 excelpicture.toprow 属性和 excelpicture.leftcolumn 属性重设图像在工作表中的位置。
- 使用 workbook.savetofile() 方法将工作簿保存到另一个 excel 文件中。
- python
from spire.xls import *
from spire.xls.common import *
# 创建一个workbook实例
workbook = workbook()
# 从文件加载名为"图片.xlsx"的excel文档
workbook.loadfromfile("图片.xlsx")
# 获取第一个工作表
sheet = workbook.worksheets[0]
# 获取第一个工作表中的第一个图片
picture = sheet.pictures[0]
# 将图片的顶部行设置为第5行
picture.toprow = 5
# 将图片的左侧列设置为第6列
picture.leftcolumn = 6
# 将带有移动图片的工作簿保存为新的excel文件,使用excel版本2016格式
workbook.savetofile("移动图片.xlsx", excelversion.version2016)
workbook.dispose()
python 移动图像从一个工作表到另一个工作表
除了在同一工作表中移动图像外,您还可以在工作簿的不同工作表之间移动图像。首先,您需要从一个工作表获取所需的图像,并使用 worksheet.pictures.add() 方法将其添加到另一个工作表,然后使用 excelpicture.remove() 方法删除原始图像。具体步骤如下:
- 创建一个 workbook 对象。
- 使用 workbook.loadfromfile() 方法加载一个 excel 文件。
- 通过 workbook.worksheets[index] 属性获取特定的工作表。
- 通过 worksheet.pictures[index] 属性从工作表中获取特定的图像。
- 通过 workbook.worksheets[index] 属性获取另一个工作表。
- 使用 worksheet.pictures.add() 方法将图像添加到目标工作表。
- 使用 excelpicture.remove() 方法从源工作表中删除图像。
- 使用 workbook.savetofile() 方法将工作簿保存到另一个 excel 文件中。
- python
*from spire.xls import *
from spire.xls.common import *
# 创建一个workbook实例
workbook = workbook()
# 从文件加载名为"图片.xlsx"的excel文档
workbook.loadfromfile("图片.xlsx")
# 获取第一个工作表
sheet = workbook.worksheets[0]
# 获取第一个工作表中的第一个图片
picture = sheet.pictures[0]
# 获取第二个工作表
sheet_two = workbook.worksheets[1]
# 在第二个工作表的指定位置(1, 1)添加第一个工作表中的图片
sheet_two.pictures.add(1, 1, picture.picture)
# 移除第一个工作表中的图片
picture.remove()
# 将带有移动图片的工作簿保存为新的excel文件,使用excel版本2016格式
workbook.savetofile("移动图片到另一个sheet.xlsx", excelversion.version2016)
workbook.dispose()
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。