Excel 提供了多种选项来压缩、调整大小或移动图像,使用户能够有效地管理和优化电子表格。通过利用这些功能,您可以显著减小文件大小,调整图像尺寸以适应单元格,并轻松重新定位图像,以增强 Excel 文档的视觉效果。本文将介绍如何使用 Spire.XLS for Python 在 Python 中以编程方式压缩、调整大小或移动 Excel 文档中的图像。
安装 Spire.XLS for Python
本教程需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.XLS
如果您不确定如何安装,请参考此教程: 如何在 Windows 中安装 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 天的临时许可证。