形状是一种非常有用的工具,可以将原始数据转化为视觉上吸引人且信息丰富的表现形式。通过在 Excel 中插入形状,你可以为你的电子表格增添一些视觉上的吸引力,使其更具有表现力和专业性。本文将演示如何使用 Python 和 Spire.XLS for Python 库在 Excel 中插入和删除形状。
本方案需要 Spire.XLS for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它轻松安装到 Windows 中。
pip install Spire.XLS
如果您不清楚如何安装,请参考此教程: 如何在 Windows 中安装 Spire.XLS for Python
通过使用 Spire.XLS 提供的 Worksheet.PrstGeomShapes.AddPrstGeomShape() 方法,你可以向 Excel 工作表中添加多种类型的形状,包括线条、矩形、三角形和椭圆等。此外,你还可以对添加的形状进行自定义,例如向形状添加文本,选择纯色、渐变色或图片来填充形状,还可以为形状设置阴影样式。以下是详细步骤:
from spire.xls import *
from spire.xls.common import *
# 创建Workbook对象
workbook = Workbook()
# 获取第一个工作表
sheet = workbook.Worksheets[0]
# 向工作表添加一个三角形形状
triangle = sheet.PrstGeomShapes.AddPrstGeomShape(2, 2, 100, 100, PrstGeomShapeType.Triangle)
# 向形状添加文本
triangle.Text = "文本"
# 使用纯色填充三角形
triangle.Fill.ForeColor = Color.get_Yellow()
triangle.Fill.FillType = ShapeFillType.SolidColor
# 向工作表添加一个心形形状
heart = sheet.PrstGeomShapes.AddPrstGeomShape(2, 5, 100, 100, PrstGeomShapeType.Heart)
# 使用渐变色填充心形
heart.Fill.ForeColor = Color.get_Red()
heart.Fill.FillType = ShapeFillType.Gradient
# 向工作表添加一个默认颜色的箭头形状
arrow = sheet.PrstGeomShapes.AddPrstGeomShape(10, 2, 100, 100, PrstGeomShapeType.CurvedRightArrow)
# 设置箭头的阴影样式
arrow.Shadow.Angle = 90
arrow.Shadow.Distance = 10
arrow.Shadow.Size = 150
arrow.Shadow.Color = Color.get_Gray()
arrow.Shadow.Blur = 30
arrow.Shadow.Transparency = 1
arrow.Shadow.HasCustomStyle = True
# 向工作表添加一个云形状
cloud = sheet.PrstGeomShapes.AddPrstGeomShape(10, 5, 100, 100, PrstGeomShapeType.Cloud)
# 使用自定义图片填充云形状
cloud.Fill.CustomPicture(Image.FromFile("image.jpg"), "image.jpg")
cloud.Fill.FillType = ShapeFillType.Picture
# 保存结果文件
workbook.SaveToFile("插入形状.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

形状可以改善工作簿的视觉外观,但也会增加文件大小。删除不必要的形状有助于减小文件大小,使其更易管理、共享或存储。Spire.XLS for Python 提供了 Worksheet.PrstGeomShapes[index].Remove() 方法,用于从工作表中删除形状。具体步骤如下:
from spire.xls import *
from spire.xls.common import *
# 创建Workbook对象
workbook = Workbook()
# 加载Excel文件
workbook.LoadFromFile("插入形状.xlsx")
# 获取第一个工作表
sheet = workbook.Worksheets[0]
# 从工作表中移除第一个形状
sheet.PrstGeomShapes[0].Remove()
# 保存结果文件
workbook.SaveToFile("删除形状.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
在 PowerPoint 中,表格边框是指围绕表格及其单元格的可见线条。它们用于界定每个单元格的边界,使表格的结构和布局清晰可见。通过设置或修改表格边框,你可以自定义 PowerPoint 演示文稿中表格的外观。在本文中,我们将介绍如何使用 Python 和 Spire.Presentation for Python 给 PowerPoint 演示文稿中的表格设置边框和删除边框。
本教程需要 Spire.Presentation for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Presentation
如果您不确定如何安装,请参考此教程: 如何在 Windows 中安装 Spire.Presentation for Python
Spire.Presentation for Python 提供了 ITable.SetTableBorder() 方法,用于给 PowerPoint 中的特定表格设置边框。具体步骤如下:
from spire.presentation.common import *
from spire.presentation import *
# 创建 Presentation 对象
presentation = Presentation()
# 获取演示文稿的第一张幻灯片
slide = presentation.Slides[0]
# 指定表格的行数、列数和尺寸
widths = [100, 100, 100, 100, 100]
heights = [20, 20]
# 在第一张幻灯片上添加表格
table = slide.Shapes.AppendTable(100, 100, widths, heights)
# 为表格添加边框,并设置边框类型、宽度和颜色
table.SetTableBorder(TableBorderType.All, 1, Color.get_Blue())
# 保存结果演示文稿
presentation.SaveToFile("设置边框.pptx", FileFormat.Pptx2013)
presentation.Dispose()

要移除表格的边框,您需要遍历表格中的单元格,然后移除每个单元格的边框。具体步骤如下:
from spire.presentation.common import *
from spire.presentation import *
# 创建 Presentation 对象
presentation = Presentation()
# 加载 PowerPoint 演示文稿
presentation.LoadFromFile("设置边框.pptx")
# 获取第一张幻灯片
slide = presentation.Slides[0]
# 获取幻灯片上的表格
table = slide.Shapes[0] if isinstance(slide.Shapes[0], ITable) else None
# 遍历表格中的行和单元格
for row in table.TableRows:
for cell in row:
# 通过将单元格的顶部、底部、左侧和右侧边框的填充类型设置为none,从每个单元格中移除边框
cell.BorderTop.FillType = FillFormatType.none
cell.BorderBottom.FillType = FillFormatType.none
cell.BorderLeft.FillType = FillFormatType.none
cell.BorderRight.FillType = FillFormatType.none
# 保存结果演示文稿
presentation.SaveToFile("移除边框.pptx", FileFormat.Pptx2013)
presentation.Dispose()

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.PDF 10.3.7 已发布。该版本优化了多个 TIFF 转 PDF 过程中内存消耗高的问题。此外,还修复了一系列其他已知问题,例如打印 PDF 时,程序抛出 "System.NullReferenceException" 异常的问题。详情请阅读以下内容。
问题修复:
Spire.XLS for Java 14.3.0 已发布。该版本在原有的 Spire.XLS for Java 产品基础上,增加了 XLSAI 功能。通过向 AI 大模型发送请求,可以在 AI 的帮助下实现文档计算、范围合并、图片生成、文件上传、提问以及翻译等功能。详情请阅读以下内容。
主要 AI 功能及对应的 API:
| 功能 | API |
| 文档计算 | public String excelGenerate(List<CellRange> ranges) |
| 合并范围 | public String excelMerge(CellRange descRange, List<Cellrange> srcRanges, CellRange titleRange) |
| 生成图片 | public InputStream imageGenerate(String description) |
| 生成指定尺寸的图片 | public InputStream imageGenerate(String description, ImageGenerationModel model, ImageGenerationSize size) |
| 上传文件 | public String uploadFile(String fileName, InputStream stream) |
| 上传 Workbook | public String uploadWorkbook(Workbook workbook) |
| 对文档进行提问 | public String documentSearch(String question, String file_server_path, boolean enableHistory) |
| public String documentSearch(String question, String file_server_path, Map<String, String> options, boolean enableHistory) | |
| 搜索 | public String search(String question, String language, boolean enableHistory) |
| 翻译工作表 | public String excelTranslate(List<Worksheet> srcWorksheets, String language, boolean translateSheetName) |
| 翻译范围 | public String excelTranslate(List<CellRange> srcRanges, String language) |
| 填写 Excel 工作表 | public String excelFill(CellRange dataRange, CellRange descRange, boolean containTitle, List<Integer> fillColumnIndexs) |
| public String excelFill(CellRange dataRange, CellRange descRange, boolean containTitle, List<Integer> fillColumnIndexs, List<String> keys) | |
| 提问 | public String ask(String question, boolean enableHistory) |
| 清除用户历史 | public String resetUserHistory() |
| 清除历史会话 | public String resetChatHistory(String sessionid) |