冰蓝科技
|
028-81705109
|
|
微信扫一扫
|

Spire.Cloud 纯前端文档控件

Spire.Office for Java 8.9.7 已发布。在该版本中,Spire.Doc for Java 优化了读取本身存在问题的文档的机制,让其抛出异常结束程序从而避免导致内存溢出;Spire.PDF for Java支持将 PDF 转换为 SVGZ 及比较 PDF 文档;Spire.Presentation for Java支持在转换PPTX到其他文档格式时指定页数。 此外,一些已知问题也在该版本中得到修复。详情请阅读以下内容。

获取 Spire.Office for Java 8.9.7请点击:

https://www.e-iceblue.cn/Downloads/Spire-Office-JAVA.html


Spire.Doc for Java

新功能:

问题修复:


Spire.PDF for Java

新功能:

问题修复:


Spire.Presentation for Java

新功能:

问题修复:

Spire.PDF for Java 9.9.6 已发布。本次更新新增支持将 PDF 转换为 SVGZ 及比较 PDF 文档,同时还增强了从 PDF 到 Excel、SVG 和 PPTX 的转换功能。此外,该版本还修复了一些已知问题,如加载 PDF 文档时程序抛出“PDF file structure is not valid”异常的问题。详情请阅读以下内容。

新功能:

问题修复:


获取Spire.PDF for Java 9.9.6请点击:

https://www.e-iceblue.cn/Downloads/Spire-PDF-JAVA.html

使用 Python 将 PDF 文件转换为图片格式是处理电子文档的开发人员和专业人士的常见需求。无论是生成预览缩略图、提取局部内容,还是适配无 PDF 阅读器的场景,图片格式都能提供更好的跨平台兼容性。本文将通过简单实用的代码示例,详解如何用 Spire.PDF for Python 实现 PDF 到 PNG、JPG、BMP、SVG、TIFF 等常用图片格式的转换。

文章内容:

为什么需要将 PDF 转换为图片?

将 PDF 转换为图片格式具有以下优势:

  • 跨平台兼容性:图片可直接嵌入网页、APP、PPT,无需依赖 PDF 阅读器
  • 轻量化预览:无需加载完整 PDF,快速生成页面快照(如文档列表缩略图)
  • 精准提取:仅保存 PDF 中的特定区域(如图表、表格),以便重点分析或重复使用。
  • 简化分享:图片可直接邮件发送、社交平台上传,降低接收方打开门槛

Python PDF 转图片库

Spire.PDF for Python 是一款轻量且功能全面的 PDF 处理库。支持将 PDF 页面转换为 PNG、JPG、BMP、SVG 和 TIFF等多种图片格式,且转换质量高、性能出色。

核心优势:

  • 独立类库:无需额外安装 PDF 相关组件
  • 高兼容性:支持 Python 3.6+,适配 Windows/macOS/Linux
  • 功能全面:除转图片外,还支持 PDF 编辑、加密、提取文本等

安装步骤:

打开终端,执行 pip 命令即可安装:

pip install Spire.PDF

基础转换:PDF 转 PNG/JPG/BMP

通过 PdfDocument 类的 SaveAsImage() 方法,可将 PDF 文档的每一页渲染为任意指定格式的图片。以下代码示例演示了如何加载 PDF 文件、遍历其所有页面,并将每页保存为 PNG 图片。若需转换为 JPG 或 BMP 格式,只需修改文件扩展名即可。

from spire.pdf import *

# 加载PDF文件
pdf = PdfDocument()
pdf.LoadFromFile("template.pdf")

# 遍历页面并保存为图片
for i in range(pdf.Pages.Count):
    # 将每页转换为图片
    with pdf.SaveAsImage(i) as image:
        
        # 根据需要保存为不同格式
        image.Save(f"PDF转图片/图片_{i}.png")
        # image.Save(f"PDF转图片/图片_{i}.jpg")
        # image.Save(f"PDF转图片/ToImage_{i}.bmp")

# 关闭PDF文档
pdf.Close()

Python将PDF转换为PNG图片

高级转换选项:解决复杂场景

生成透明背景图片

透明背景有助于将图片无缝融入设计中,避免出现不必要的边框或背景色。在 Python 中进行 PDF 转图片时,可通过 SetPdfToImageOptions(0) 设置透明值(0 = 完全透明)。

以下代码演示了如何将 PDF 文档的每一页导出为透明的 PNG 图片:

from spire.pdf import *

# 从文件加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("template.pdf")

# 设置图片背景的透明值为0
pdf.ConvertOptions.SetPdfToImageOptions(0)

# 遍历所有页面并保存为图片
for i in range(pdf.Pages.Count):
    # 将每页转换为图片
    with pdf.SaveAsImage(i) as image:
        # 将图片保存至输出目录
        image.Save(f"Output/ToImage_{i}_transparent.png")

# 关闭PDF文档
pdf.Close()

⚠️ 注意:仅 PNG 支持透明效果,JPG/BMP 会自动填充白色背景。

裁剪 PDF 特定区域并转换为图片

在某些场景下,你可能只需导出 PDF 页面的特定区域(如图表、表格或文本块)。这可以通过在转换前调整页面的 CropBox 属性实现,该属性用于定义页面的可见区域。通过将其设置为特定的 RectangleF(x, y, width, height) 值,可以隔离并导出所需的内容部分。

以下代码演示了如何裁剪 PDF 第一页的矩形区域,并将该区域保存为 PNG 图片:

from spire.pdf import *

# 从文件加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("Sample.pdf")

# 获取PDF的第一页
page = pdf.Pages.get_Item(0)

# 按指定区域裁剪页面
page.CropBox = RectangleF(0.0, 300.0, 600.0, 260.0)

# 将裁剪后的页面转换为图片
with pdf.SaveAsImage(0) as image:
    # 将图片保存为PNG文件
    image.Save("Output/CropPDFSaveAsImage.png")
    
# 关闭PDF文档
pdf.Close()

Python裁剪PDF页面并导出为图片

注意:使用时需要根据目标内容的位置调整坐标。Spire.PDF 坐标系从页面左上角开始计算。

将 PDF 转换为多页 TIFF 文件

TIFF 格式支持多页存储,是存档和打印的常用选择。虽然 Spire.PDF for Python 不支持直接支持创建多页 TIFF,但你可以先将单个页面转换为图片,再使用 Pillow 库将其合并为一个 .tiff 文件。

开始前,运行以下命令安装 Pillow 库,:

pip install Pillow

以下示例演示了如何:

  1. 加载 PDF 文件
  2. 将每一页转换为图片
  3. 将所有图片合并为单个多页 TIFF 文件
from spire.pdf import *
from PIL import Image
from io import BytesIO

# 从文件加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("Input.pdf")

# 创建一个空列表用于存储PIL图片
images = []

# 遍历文档中的所有页面
for i in range(pdf.Pages.Count):

    # 将指定页面转换为图片流
    with pdf.SaveAsImage(i) as imageData:

        # 以PIL图片格式打开图片流
        img = Image.open(BytesIO(imageData.ToArray())) 

        # 将PIL图片添加到列表中
        images.append(img)

# 将PIL图片保存为多页TIFF文件
images[0].save("Output/ToTIFF.tiff", save_all=True, append_images=images[1:])

# 释放资源
pdf.Dispose()

Python 将 PDF 转换为 TIFF

同样也可以将 TIFF 文件转换回 PDF 格式。详细教程参考:Python 将 PDF 转换为 TIFF 和将 TIFF 转换为 PDF。

将 PDF 导出为 SVG 格式

SVG(可缩放矢量图形)是需要无损缩放内容的理想格式,例如图表、矢量插图和技术图纸。通过使用 SaveToFile() 方法并指定其参数FileFormat.SVG ,即可将 PDF 页面导出为 SVG 文件。该转换会保留内容的矢量特性,非常适合网页嵌入、响应式设计以及在矢量图形工具中进一步编辑。

以下代码演示了如何将一个 PDF 文档导出为 SVG 格式:

from spire.pdf import *

# 从文件加载PDF文档
pdf = PdfDocument()
pdf.LoadFromFile("Example.pdf")

# 将文件的每一页保存为单独的SVG文件
pdf.SaveToFile("PdfToSVG/ToSVG.svg", FileFormat.SVG)

# 关闭PdfDocument对象
pdf.Close()

⚠️ 注意:PDF 文档中的每一页将保存为单独的 SVG 文件,文件名为 ToSVG_i.svg(其中i为页码,从1开始)。

若仅需导出特定页面或自定义 SVG 输出尺寸,请参考详细教程:Python 将 PDF 转为 SVG。

总结

将 PDF 转换为 PNG、JPG、BMP、SVG 和 TIFF 等图片格式,为电子文档的分享、展示和处理提供了灵活性。借助 Spire.PDF for Python,可高效实现 PDF 到图片的全场景转换:

  • 基础需求:一键转 PNG/JPG/BMP,代码简洁易复用
  • 高级需求:支持透明背景、局部裁剪、多页 TIFF、SVG 矢量图

通过本文章开发者可以实现自动化 PDF 转图片流程,将图片导出功能无缝集成到 Python 应用程序和工作流中。

常见问题

Q1:可以将 PDF 中的指定页面范围转换为图片吗?

答:可以通过调整循环的索引范围来转换特定页面。例如,转换第1-3页(注:索引从0开始):

# 仅转换第1-3页
for i in range(0, 2):
    with pdf.SaveAsImage(i) as img:
        img.Save(f"page_{i}.png")

Q2:是否支持批量转换多个 PDF 文件为图片?

答:支持批量转换。可以遍历 PDF 文件路径列表,并在循环中逐一转换:

pdf_files = ["a.pdf", "b.pdf", "c.pdf"]
for file in pdf_files:
    pdf = PdfDocument()
    pdf.LoadFromFile(file)
    for i in range(pdf.Pages.Count):
        with pdf.SaveAsImage(i) as img:
            img.Save(f"{file}_page_{i}.png")

Q3:可以将受密码保护的 PDF 转换为图片吗?

答:可以。只需在加载 PDF 文档时传入正确的密码,即可转换加密 PDF:

pdf = PdfDocument()
pdf.LoadFromFile("protected.pdf", "password")

Q4:是否可以直接提取 PDF 中的图片,而非转换整个页面?

答:可以,Spire.PDF 支持提取 PDF 内的原生图片,具体可参考:使用 Python 从 PDF 中提取图片 - 完整指南。

Spire.Presentation for Java 8.9.4 已发布。该版本支持在转换PPTX到其他文档格式时指定文档页数。此外,一些已知问题也在该版本中被成功修复,如将PPTX转换为HTML后视频和图片的路径不正确的问题。详情请阅读以下内容。

新功能:

问题修复:


获取 Spire.Presentation for Java 8.9.4 请点击:

https://www.e-iceblue.cn/Downloads/Spire-Presentation-JAVA.html

水印是指放置在文档内容后面的半透明文本或图像。在 Word 文档中,我们可以添加水印来保护文档版权,例如包含版权符号、作者姓名或公司标志。此外,水印还可以用于标示文档的状态,如“草稿”、“机密”或“最终版”。本文将演示如何使用 Spire.Doc for Python 在 Python 程序中添加文本水印和图像水印到 Word 文档。

安装 Spire.Doc for Python

本教程需要用到 Spire.Doc for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。

pip install Spire.Doc

如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Doc for Python

在 Word 文档中添加文字水印

Spire.Doc for Python 提供的 TextWatermark 类可用于设置文本水印。在设置好水印后,我们可以通过 Document.Watermark 属性将其添加到 Word 文档中。下面是详细的步骤:

  • Python
from spire.doc import *
from spire.doc.common import *

# 创建一个文档对象
document = Document()

# 加载一个Word文档
document.LoadFromFile("示例.docx")

# 创建一个TextWatermark的对象
txtWatermark = TextWatermark()

# 设置文本水印的格式
txtWatermark.Text = "请勿复制"
txtWatermark.FontSize = 65
txtWatermark.Color = Color.get_Red()
txtWatermark.Layout = WatermarkLayout.Diagonal

# 将文本水印添加到文档中
document.Watermark = txtWatermark

# 保存结果文档
document.SaveToFile("output/文字水印.docx", FileFormat.Docx)
document.Close()

Python 添加水印到 Word 文档

在 Word 文档中添加图片水印

PictureWatermark 类的方法可以用于设置图像水印。以下是详细步骤:

  • Python
from spire.doc import *
from spire.doc.common import *

# 创建一个 Document 对象
document = Document()

# 加载一个 Word 文档
document.LoadFromFile("示例.docx")

# 创建一个 PictureWatermark 对象
picture = PictureWatermark()

# 设置图片水印的格式
picture.SetPicture("水印.png")
picture.Scaling = 100
picture.IsWashout = False

# 将图片水印添加到文档中
document.Watermark = picture

# 保存结果文档
document.SaveToFile("output/图片水印.docx", FileFormat.Docx)
document.Close()

Python 添加水印到 Word 文档

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

Spire.Doc 11.9.19 已发布。本次更新增强了 Word 和 HTML 到 PDF 的转换功能。此外,大量已知问题也在该版本中成功修复,如加载一个文档并另存为一个新文档后多出形状的问题。详情请阅读以下内容。

问题修复:


获取Spire.Doc 11.9.19请点击:

https://www.e-iceblue.cn/Downloads/Spire-Doc-NET.html

Microsoft Word 是日常工作和生活中常用的一种数字文档格式,但有时为了确保文档的内容、格式和布局在不同设备上的一致性和跨平台兼容性,您可能需要将 Word 文件转换成PDF格式。本文将介绍如何使用 Spire.Doc for Python 通过代码将 Word 转换为 PDF。

安装 Spire.Doc for Python

本教程需要用到 Spire.Doc for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。

pip install Spire.Doc

如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Doc for Python

使用 Python 将 Doc 或 Docx 转换为 PDF

Spire.Doc for Python 提供的 Document.SaveToFile(string fileName, FileFormat fileFormat) 方法可将 Word 另存为 PDF、XPS、HTML、RTF 等格式。如果您只想将 Word 文档保存为常规 PDF 而不进行其他设置,请参考以下步骤。

  • Python
from spire.doc import *
from spire.doc.common import *

# 创建 Document 类的对象
document = Document()

# 加载一个 .doc 或 .docx 文档
document.LoadFromFile("工作汇报.docx")

# 将文档保存为PDF格式
document.SaveToFile("Output/ToPDF.pdf", FileFormat.PDF)
document.Close()

Python 将 Word 转换为 PDF

使用 Python 将 Word 转换为加密的 PDF

要将 Word 转换为受密码保护的 PDF,可以使用 Document.SaveToFile(string fileName, ToPdfParameterList paramList) 方法。其中 ToPdfParameterList 参数可控制 Word 文档转 PDF 的过程,例如,转换时是否加密文档。具体步骤如下。

  • Python
from spire.doc import *
from spire.doc.common import *

# 创建 Document 类的对象
document = Document()

# 加载 Word 文档
document.LoadFromFile("工作汇报.docx")

# 创建 ToPdfParameterList 类的对象
parameter = ToPdfParameterList()

# 设置打开密码和权限密码,并用其保护生成的 PDF 文件
openPsd = "abc123"
permissionPsd = "E-iceblue"
parameter.PdfSecurity.Encrypt(openPsd, permissionPsd, PdfPermissionsFlags.Default, PdfEncryptionKeySize.Key128Bit)

# 将文档保存为加密的PDF
document.SaveToFile("Output/加密Pdf.pdf", parameter)
document.Close()

Python 将 Word 转换为 PDF

使用 Python 将 Word 转换为带书签的 PDF

书签可以增强文档的可读性。在转换 Word 文档到 PDF 时,您可能希望保留现有书签或根据标题创建新书签。以下是将 Word 转换为带书签的 PDF 的具体步骤。

  • Python
from spire.doc import *
from spire.doc.common import *

# 创建 Document 类的对象
document = Document()

# 加载 Word 文档
document.LoadFromFile("工作汇报.docx")

# 创建 ToPdfParameterList 类的对象
parames = ToPdfParameterList()

# 根据 Word 中的标题创建 PDF 书签
parames.CreateWordBookmarksUsingHeadings = True

# 根据 Word 中的现有书签创建 PDF 书签
#parames.CreateWordBookmarks = True

# 将文档保存为带书签的PDF
document.SaveToFile("Output/带书签的PDF.pdf", parames)
document.Close()

Python 将 Word 转换为 PDF

使用 Python 将 Word 转换为 PDF 时嵌入字体

要确保生成的 PDF 文档在各种设备上的外观一致性,那么您需要在转换时将 Word 文档中使用的字体嵌入到 PDF 文档中。具体步骤如下。

  • Python
from spire.doc import *
from spire.doc.common import *

# 创建 Document 类的对象
document = Document()

# 加载 Word 文档
document.LoadFromFile("工作汇报.docx")

# 创建 ToPdfParameterList 类的对象
parameter = ToPdfParameterList()

# 将字体嵌入到生成的PDF中
parameter.IsEmbeddedAllFonts = True

# 将文档保存为PDF
document.SaveToFile("Output/嵌入字体.pdf", parameter)
document.Close()

Python 将 Word 转换为 PDF

使用 Python 将 Word 转换为 PDF 时设置图像质量

包含大量高质量图像的文档通常尺寸较大。在将 Word 转换为 PDF 时,您可以决定是否压缩图像质量。具体步骤如下。

  • Python
from spire.doc import *
from spire.doc.common import *

# 创建 Document 类的对象
document = Document()

# 加载 Word 文档
document.LoadFromFile("工作汇报.docx")

# 将图像压缩到原始质量的40%
document.JPEGQuality = 40

# 保留原始图像质量
# document.JPEGQuality = 100

# 将文档保存为PDF
document.SaveToFile("Output/设置图片质量.pdf", FileFormat.PDF)
document.Close()

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

Spire.PDF 9.9.9已发布。该版本增强了从PDF到图像,以及从OFD到PDF的转换功能。此外,还修复了一系列其他已知问题,例如拆分后的文档的大小不正确的问题。详情请阅读以下内容。

问题修复:


获取 Spire.PDF 9.9.9请点击:

https://www.e-iceblue.cn/Downloads/Spire-PDF-NET.html

在创建 Word 文档的过程中,经常会遇到许多空行。这些空白的空间会打乱文档内容的连贯性,使布局变得混乱,并且降低文档的整体视觉效果。为了提升文档的阅读体验,确保文档有良好的结构,消除空白行十分重要。本文将演示如何使用 Spire.Doc for Python 通过 Python 程序从 Word 文档中的删除空白行。

安装 Spire.Doc for Python

本教程需要用到 Spire.Doc for Python 和 plum-dispatch v1.7.4。可以通过以下 pip 命令将它们轻松安装到 Windows 中。

pip install Spire.Doc

如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Doc for Python

移除 Word 文档中的空白行

Word 文档中的空白行以段落的形式出现在文档中,而段落是节的子对象。因此,删除空白行只需遍历文档各节,识别并删除其中的空白段落即可。具体步骤如下:

  • Python
from spire.doc import *
from spire.doc.common import *

# 创建 Document 类的对象
doc = Document()

# 加载 Word 文档
doc.LoadFromFile("示例.docx")

# 遍历文档中的每个节
for i in range(doc.Sections.Count):
    section = doc.Sections.get_Item(i)
    j = 0
    # 遍历节中的每个子对象
    while j < section.Body.ChildObjects.Count:
        # 检查子对象是否为段落类型
        if section.Body.ChildObjects[j].DocumentObjectType == DocumentObjectType.Paragraph:
            objItem = section.Body.ChildObjects[j]
            # 检查子对象是否为 Paragraph 类的实例
            if isinstance(objItem, Paragraph):
                paraObj = Paragraph(objItem)
                # 检查段落文本是否为空
                if len(paraObj.Text) == 0:
                    # 如果段落文本为空,则从节的子对象列表中移除该对象
                    section.Body.ChildObjects.Remove(objItem)
                    j -= 1
        j += 1

# 保存文档
doc.SaveToFile("output/删除空白行.docx")

Python 删除 Word 文档中的空白行

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。

簇状柱形图和堆叠柱形图是柱形图的两种常见变体。簇状柱形图可以直接比较不同类别的值,而堆叠柱形图既可以显示每个类别的总数,也可以显示其各个组成部分的比例。 本文将介绍如何使用 Spire.XLS for 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 提供的 Worksheet.Charts.Add(ExcelChartType chartType) 方法支持在工作表中添加图表。其中的 ExcelChartType 枚举包含 MS Excel 中预定义的各种图表类型。具体步骤如下:

  • Python
from spire.xls import *
from spire.xls.common import *

# 创建 Workbook 对象
workbook = Workbook()

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 设置图表数据
sheet.Range["A1"].Value = "产品"
sheet.Range["A2"].Value = "短裤"
sheet.Range["A3"].Value = "牛仔裤"
sheet.Range["A4"].Value = "帽子"
sheet.Range["A5"].Value = "T恤"

sheet.Range["B1"].Value = "店铺1"
sheet.Range["B2"].NumberValue = 35000
sheet.Range["B3"].NumberValue = 46000
sheet.Range["B4"].NumberValue = 28000
sheet.Range["B5"].NumberValue = 51000
sheet.Range["C1"].Value = "店铺2"
sheet.Range["C2"].NumberValue = 41000
sheet.Range["C3"].NumberValue = 32000
sheet.Range["C4"].NumberValue = 38000
sheet.Range["C5"].NumberValue = 40000

# 设置单元格样式
sheet.Range["A1:C1"].RowHeight = 15
sheet.Range["A1:C1"].Style.Color = Color.get_Black()
sheet.Range["A1:C1"].Style.Font.Color = Color.get_White()
sheet.Range["A1:C1"].Style.VerticalAlignment = VerticalAlignType.Center
sheet.Range["A1:C1"].Style.HorizontalAlignment = HorizontalAlignType.Center

# 添加一个簇状柱形图到工作表
chart = sheet.Charts.Add(ExcelChartType.ColumnClustered)

# 设置图表数据范围
chart.DataRange = sheet.Range["A1:C5"]
chart.SeriesDataFromRange = False

# 设置图表位置
chart.LeftColumn = 5
chart.TopRow = 1
chart.RightColumn = 14
chart.BottomRow = 21

# 设置图表标题
chart.ChartTitle = "店铺各产品销售情况"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12

# 设置坐标轴标题
chart.PrimaryCategoryAxis.Title = "产品"
chart.PrimaryCategoryAxis.Font.IsBold = True
chart.PrimaryCategoryAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.Title = "销量"
chart.PrimaryValueAxis.HasMajorGridLines = False
chart.PrimaryValueAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90

# 设置图表系列的颜色、重叠、间隙宽度和数据标签
series = chart.Series
for i in range(len(series)):
    cs = series[i]
    cs.Format.Options.IsVaryColor = True
    cs.Format.Options.Overlap = -50
    cs.Format.Options.GapWidth = 350
    cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True

# 设置图例位置
chart.Legend.Position = LegendPositionType.Top

# 保存结果文档
workbook.SaveToFile("簇状柱形图.xlsx", ExcelVersion.Version2016)

Python 在 Excel 中创建柱形图

用 Python 在 Excel 中创建堆叠柱形图

创建堆叠柱形图的过程与创建簇状柱形图类似。唯一不同的是,你需要将 Excel 图表类型从 ColumnClustered 更改为 ColumnStacked。具体步骤如下:

  • Python
from spire.xls import *
from spire.xls.common import *

# 创建 Workbook 对象
workbook = Workbook()

# 获取第一个工作表
sheet = workbook.Worksheets[0]

# 设置图表数据
sheet.Range["A1"].Value = "产品"
sheet.Range["A2"].Value = "短裤"
sheet.Range["A3"].Value = "牛仔裤"
sheet.Range["A4"].Value = "帽子"
sheet.Range["A5"].Value = "T恤"

sheet.Range["B1"].Value = "店铺1"
sheet.Range["B2"].NumberValue = 35000
sheet.Range["B3"].NumberValue = 46000
sheet.Range["B4"].NumberValue = 28000
sheet.Range["B5"].NumberValue = 51000
sheet.Range["C1"].Value = "店铺2"
sheet.Range["C2"].NumberValue = 41000
sheet.Range["C3"].NumberValue = 32000
sheet.Range["C4"].NumberValue = 38000
sheet.Range["C5"].NumberValue = 40000

# 设置单元格样式
sheet.Range["A1:C1"].RowHeight = 15
sheet.Range["A1:C1"].Style.Color = Color.get_Black()
sheet.Range["A1:C1"].Style.Font.Color = Color.get_White()
sheet.Range["A1:C1"].Style.VerticalAlignment = VerticalAlignType.Center
sheet.Range["A1:C1"].Style.HorizontalAlignment = HorizontalAlignType.Center

# 添加一个堆叠柱形图到工作表
chart = sheet.Charts.Add(ExcelChartType.ColumnStacked)

# 设置图表数据范围
chart.DataRange = sheet.Range["A1:C5"]
chart.SeriesDataFromRange = False

# 设置图表位置
chart.LeftColumn = 5
chart.TopRow = 1
chart.RightColumn = 14
chart.BottomRow = 21

# 设置图表标题
chart.ChartTitle = "店铺各产品销售情况"
chart.ChartTitleArea.IsBold = True
chart.ChartTitleArea.Size = 12

# 设置坐标轴标题
chart.PrimaryCategoryAxis.Title = "产品"
chart.PrimaryCategoryAxis.Font.IsBold = True
chart.PrimaryCategoryAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.Title = "销量"
chart.PrimaryValueAxis.HasMajorGridLines = False
chart.PrimaryValueAxis.TitleArea.IsBold = True
chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90

# 设置图表系列的颜色、重叠、间隙宽度和数据标签
series = chart.Series
for i in range(len(series)):
    cs = series[i]
    cs.Format.Options.IsVaryColor = True
    cs.Format.Options.GapWidth = 270
    cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = True
    cs.DataPoints.DefaultDataPoint.DataLabels.Position = DataLabelPositionType.Inside

# 设置图例位置
chart.Legend.Position = LegendPositionType.Top

# 保存结果文档
workbook.SaveToFile("堆叠柱形图.xlsx", ExcelVersion.Version2016)

Python 在 Excel 中创建柱形图

申请临时 License

如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。