Spire.XLS for Java 15.5.1 更新已发布。本次更新增强了 Excel 到 HTML 的转换功能。此外,该版本还成功修复了一些已知问题,如对特定 Excel 文档调用 Worksheet.findAllString 程序抛异常的问题。详情请阅读以下内容。
问题修复:
在数据处理和管理场景中,将原始文本文件(TXT)高效转换为结构化的 Excel 电子表格是一项常见要求。对于那些需要自动生成报表或者处理日志文件的开发人员而言,借助 C# 实现 TXT 到 Excel 的转换工作,可以简化数据组织和分析。本文将探讨如何使用 Spire.XLS for .NET(一个功能强大的库,无需 Microsoft Office 即可处理 Excel XLS 或 XLSX 文件)实现这一目标。
本文将介绍如何通过 C# 和 Spire.XLS for .NET 库,将 TXT 文本转换为 Excel 表格,主要内容包括:
文本文件虽具备轻量易用的特性,但在数据分析能力上远不及 Excel。将 TXT 转换为 XLS 或 XLSX 格式的核心优势体现在以下方面:
Spire.XLS for .NET 是一款专业的 Excel 文档处理组件,提供高效便捷的 API,允许开发人员通过简单的代码实现 TXT 到 Excel 的转换。在开始使用之前,您可以选择以下方法之一来安装该库:
方法 1:NuGet 包管理器
方法 2:程序包管理器控制台
Install-Package Spire.XLS
方法 3:手动安装 DLL 文件
可以按照以下步骤将 TXT 文件中的数据写入 Excel 工作表:
C# 代码示例:
using Spire.Xls;
using System.IO;
using System.Collections.Generic;
class TxtToExcelConverter
{
static void Main()
{
// 读取txt文件
string[] lines = File.ReadAllLines("库存.txt", System.Text.Encoding.UTF8);
// 创建一个列表来存储文本文件中的数据
List<string[]> data = new List<string[]>();
// 读取每一行的数据并将其添加到列表中
foreach (string line in lines)
{
data.Add(line.Trim().Split('\t'));
}
// 创建 Workbook 对象
Workbook workbook = new Workbook();
// 获取第一张工作表
Worksheet sheet = workbook.Worksheets[0];
// 遍历数据列表中的行和列
for (int row = 0; row < data.Count; row++)
{
for (int col = 0; col < data[row].Length; col++)
{
// 将数据写入到指定单元格中
sheet.Range[row + 1, col + 1].Value = data[row][col];
// 将标题行加粗
sheet.Range[1, col + 1].Style.Font.IsBold = true;
}
}
// 设置自适应列宽
sheet.AllocatedRange.AutoFitColumns();
// 保存Excel文件
workbook.SaveToFile("TXT转Excel.xlsx", ExcelVersion.Version2016);
workbook.Dispose();
}
}

如果 TXT 文件使用不同的分隔符(如空格、逗号、分号等),可修改 Split(params char[] separator) 方法中的参数。
将文本文件转换为 Excel 文件后,您可以利用 Spire.XLS 库的丰富功能来格式化单元格,如 设置背景颜色、添加单元格边框、应用数字格式等。
按照本分步指南操作,您可以高效地将非结构化文本数据转换为有序的 Excel 电子表格,这非常适合数据分析、报告生成和数据管理。转换过程中,您可以针对不同的分隔符优化实现方式,并利用 Spire.XLS 的高级功能来处理复杂的转换场景。
如您需要去除生成文档中的评估提示或解除功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
数据透视表是Excel中一种高效、灵活的数据分析工具,它能够快速汇总大量信息,帮助用户深入挖掘数据的价值并生成直观的报告。在数据透视表的众多功能中,筛选功能尤为重要,它允许用户精准聚焦特定数据子集,且无需对原始数据做任何修改,从而保障数据的完整性和准确性。
本教程介绍如何使用 Python 和 Spire.XLS for Python 库,以编程方式对 Excel 数据透视表应用多种筛选器。主要内容包括:
筛选是数据透视表中不可或缺的功能,它拥有诸多优势:
在使用 Python 操作 Excel 数据透视表前,请先安装 Spire.XLS for Python 库。
最快捷的安装方式是通过 pip(Python 包管理器),你只需要在终端或命令提示符中输入以下命令,即可安装Spire.XLS for Python:
pip install spire.xls
报表筛选器允许用户根据指定字段和值对整个数据透视表进行全局筛选。它适用于在不改变表格布局的情况下,仅显示特定类别或项目的数据。
from spire.xls import *
# 创建 Workbook 类的对象
workbook = Workbook()
# 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx")
# 获取第一个工作表
sheet = workbook.Worksheets[0]
# 获取工作表中的第一个数据透视表
pt = sheet.PivotTables[0]
# 为"产品" 字段创建报表筛选器
reportFilter = PivotReportFilter("产品", True)
# 将报表筛选器添加到数据透视表
pt.ReportFilters.Add(reportFilter)
# 保存结果文件
workbook.SaveToFile("报表筛选器.xlsx", FileFormat.Version2016)
workbook.Dispose()

行字段筛选器允许用户筛选显示在 Excel 数据透视表行字段中的数据。这些筛选可以基于标签(特定文本值)或数值。
from spire.xls import *
# 创建 Workbook 类的对象
workbook = Workbook()
# 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx")
# 获取第一个工作表
sheet = workbook.Worksheets[0]
# 获取第一个数据透视表
pt = sheet.PivotTables[0]
# 向第一个行字段添加数值筛选器(筛选条件:大于 5000)
pt.RowFields[0].AddValueFilter(PivotValueFilterType.GreaterThan, pt.DataFields[0], Int32(5000), None)
# 或者向第一个行字段添加标签筛选器(筛选条件:等于 "张超")
# pt.RowFields[0].AddLabelFilter(PivotLabelFilterType.Equal, "张超", None)
# 计算数据透视表数据
pt.CalculateData()
# 保存结果文件
workbook.SaveToFile("行字段筛选器.xlsx", FileFormat.Version2016)
workbook.Dispose()

列字段筛选器可以让用户筛选数据透视表中列字段的数据。与行字段筛选器类似,列字段筛选既可以基于标签(文本)进行,也可以基于数值条件来设置。
from spire.xls import *
# 创建 Workbook 类的对象
workbook = Workbook()
# 加载 Excel 文件
workbook.LoadFromFile("示例.xlsx")
# 获取第一个工作表
sheet = workbook.Worksheets[0]
# 获取第一个数据透视表
pt = sheet.PivotTables[0]
# 给第一个列字段添加标签筛选器
pt.ColumnFields[0].AddLabelFilter(PivotLabelFilterType.Equal, String("笔记本电脑"), None)
# 如果想应用数值筛选,参考下面这行代码
# pt.ColumnFields[0].AddValueFilter(PivotValueFilterType.Between, pt.DataFields[0], Int32(5000), Int32(10000))
# 计算数据透视表数据
pt.CalculateData()
# 保存结果文件
workbook.SaveToFile("列字段筛选器.xlsx", FileFormat.Version2016)
workbook.Dispose()

如果您需要去除生成文档中的评估提示或解除功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
在 Excel 中,筛选数据透视表是实现高效数据分析的关键,它帮助用户聚焦重要信息,同时保持表格结构不变。借助 Spire.XLS for Python,开发者可以轻松通过编程自动化添加、修改和管理数据透视表的筛选条件,提高工作效率。
Spire.XLS for C++ 15.5.0 现已正式发布。该版本增加了一系列新功能,例如支持转换 Excel 到 PDF 时设置页面大小,支持将图像嵌入单元格,支持对形状进行分组以及启用修订模式。详情请查阅以下内容。
调整::
新功能:
intrusive_ptr workbook = new Workbook();
intrusive_ptr sheet = workbook->GetWorksheets()->Add(L""0"");
intrusive_ptr a1 = sheet->GetRange(L""A1"");
a1->SetValue(L""taatat"");
sheet->GetPageSetup()->SetPaperSize(PaperSizeType::PaperA0);
workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2013);
workbook->Dispose(); intrusive_ptr book = new Workbook();
book->GetWorksheets()->Clear();
intrusive_ptr sheet = book->GetWorksheets()->Add(L""0"");
intrusive_ptr shape1 = sheet->GetPrstGeomShapes()->AddPrstGeomShape(1, 3, 50, 50, PrstGeomShapeType::RoundRect);
intrusive_ptr shape2 = sheet->GetPrstGeomShapes()->AddPrstGeomShape(5, 3, 50, 50, PrstGeomShapeType::Triangle);
wcout << sheet->GetName() << endl;
intrusive_ptr groupShapeCollection = sheet->GetGroupShapeCollection();
vector> shapes;
shapes.push_back(shape1);
shapes.push_back(shape2);
groupShapeCollection->Group(shapes);
book->SaveToFile(outputFile.c_str(), ExcelVersion::Version2013);
book->Dispose(); intrusive_ptr book = new Workbook();
book->LoadFromFile(inputFile.c_str());
intrusive_ptr sheet = dynamic_pointer_cast(book->GetWorksheets()->Get(0));
std::vector> images;
for (int i = 0; i < sheet->GetShapes()->GetCount(); ++i)
{
intrusive_ptr shape = dynamic_pointer_cast(sheet->GetShapes()->Get(i));
intrusive_ptr image = shape->SaveToImage();
shape->SaveToImage((outputFile + L""Bug_out_"" + std::to_wstring(i) + L"".png"").c_str());
} intrusive_ptr workbook = new Workbook();
workbook->LoadFromFile(inputFile.c_str());
workbook->TrackedChanges(true);
workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2013); intrusive_ptr workbook = new Workbook();
workbook->LoadFromFile(inputFile.c_str());
intrusive_ptr sheet = dynamic_pointer_cast(workbook->GetWorksheets()->Get(0));
intrusive_ptr range = dynamic_pointer_cast(sheet->GetRange(L""D1""));
intrusive_ptr fs = new Stream(inputFile_Img.c_str());
range->InsertOrUpdateCellImage(fs, true);
workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2013);
workbook->Dispose(); intrusive_ptr workbook(new Workbook());
workbook->LoadFromFile(inputFile.c_str());
intrusive_ptr pivotSheet = workbook->GetWorksheets()->Get(0);
intrusive_ptr pivot = dynamic_pointer_cast(pivotSheet->GetPivotTables()->Get(0));
intrusive_ptr dateBaseField = pivot->GetPivotFields()->Get(L""number"");
dateBaseField->CreateGroup(3000, 3800, 1);
pivot->CalculateData();
workbook->SaveToFile(outputFile.c_str()); 在现代软件开发中,从模板生成动态 Word 文档是生成报告、合同、发票或其他业务文档的常见需求。寻求文档自动化高效解决方案的 Java 开发者可以利用 Spire.Doc for Java,这是一个无需安装 Microsoft Office 即可处理 Word 文件的强大库。
本指南将探讨如何使用 Spire.Doc for Java 从 模板创建 Word 文档,涵盖两种关键方法:替换文本占位符和修改书签内容。
Spire.Doc for Java 是一个功能强大的库,支持开发者创建、操作和转换 Word 文档。它提供了直观的 API,可对现有文档中的文本、图片和书签等进行各种操作。
首先,请从我们的官网下载该库并导入到 Java 项目中。如果使用 Maven,请在 pom.xml 文件中添加以下依赖:
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.doc</artifactId>
<version>13.12.2</version>
</dependency>
</dependencies>
该方法使用包含标记占位符(如 #name#、#date#)的模板文档,这些占位符会被动态替换为真实数据。Spire.Doc 的 Document.replace() 方法可高效处理文本替换,同时其他 API 支持高级替换功能(例如在指定位置插入图片)。
通过替换文本占位符从模板生成 Word 文档的步骤:
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.documents.TextSelection;
import com.spire.doc.fields.DocPicture;
import com.spire.doc.fields.TextRange;
import java.util.HashMap;
import java.util.Map;
public class ReplaceTextPlaceholders {
public static void main(String[] args) {
// 创建Document对象
Document document = new Document();
// 加载模板文档
document.loadFromFile("https://cdn.e-iceblue.cn/C:\\Users\\Administrator\\Desktop\\template.docx");
// 创建HashMap用于保存占位符及其替换内容
Map replaceDict = new HashMap<>();
replaceDict.put("#name#", "约翰");
replaceDict.put("#gender#", "男");
replaceDict.put("#birthdate#", "1990年1月15日");
replaceDict.put("#address#", "缅因街123号");
replaceDict.put("#city#", "斯普林菲尔德");
replaceDict.put("#province#", "伊利诺伊州");
replaceDict.put("#postal#", "62701");
replaceDict.put("#country#", "美国");
// 用相应的值替换文档中的占位符
for (Map.Entry entry : replaceDict.entrySet()) {
document.replace(entry.getKey(), entry.getValue(), true, true);
}
// 图像文件的路径
String imagePath = "C:\\Users\\Administrator\\Desktop\\portrait.png";
// 用图像替换照片占位符
replaceTextWithImage(document, "#photo#", imagePath);
// 保存修改后的文档
document.saveToFile("output/ReplacePlaceholders.docx", FileFormat.Docx);
// 释放资源
document.dispose();
}
// 方法用于用图像替换文档中的占位符
static void replaceTextWithImage(Document document, String stringToReplace, String imagePath) {
// 从指定路径加载图像
DocPicture pic = new DocPicture(document);
pic.loadImage(imagePath);
pic.setScale(80f);
// 在文档中查找占位符
TextSelection selection = document.findString(stringToReplace, false, true);
// 获取找到的文本范围
TextRange range = selection.getAsOneRange();
int index = range.getOwnerParagraph().getChildObjects().indexOf(range);
// 插入图像并移除占位符文本
range.getOwnerParagraph().getChildObjects().insert(index, pic);
range.getOwnerParagraph().getChildObjects().remove(range);
}
}
效果图:

该方法利用 Word 文档中的书签来标识需要插入或修改内容的位置。Spire.Doc 提供的 BookmarksNavigator 类简化了这一流程,可直接定位书签位置进行精准内容替换,同时自动保留文档原有的结构和格式。
通过修改书签内容从模板生成Word文档的步骤:
import com.spire.doc.*;
import com.spire.doc.documents.*;
import java.util.HashMap;
import java.util.Map;
public class ModifyBookmarkContent {
public static void main(String[] args) {
// 初始化Document 对象
Document document = new Document();
// 加载模板文档
document.loadFromFile("https://cdn.e-iceblue.cn/C:\\Users\\Administrator\\Desktop\\template.docx");
// 定义书签名称及对应的用于替换的文本
Map replaceDict = new HashMap<>();
replaceDict.put("name", "Tech Innovations Inc.");
replaceDict.put("year", "2015");
replaceDict.put("headquarter", "美国,加州,旧金山");
replaceDict.put("history", "Tech Innovations Inc. 由一群怀抱梦想的工程师和创业者共同创立," +
"他们立志在科技领域掀起一场革命。公司最初专注于软件开发,随后逐步将业务版图扩展至人工智能和云计算解决方案领域。");
// 创建BookmarksNavigator对象用于管理文档中的书签
BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document);
// 遍历HashMap中的条目
for (Map.Entry entry : replaceDict.entrySet()) {
// 定位到具体书签
bookmarkNavigator.moveToBookmark(entry.getKey());
// 替换书签内容
bookmarkNavigator.replaceBookmarkContent(entry.getValue(), true);
}
// 保存修改后的文档
document.saveToFile("output/ReplaceBookmarkContent.docx", FileFormat.Docx);
// 释放资源
document.dispose();
}
}
效果图:

两种方法都能有效实现模板化文档生成,但适用于不同场景:
文本替换法适用于以下情况:
书签替换法更适合以下需求:
Spire.Doc 还提供邮件合并功能(Mail Merge),支持从数据库等外部数据源批量生成个性化文档(如群发信函/报告)。该功能通过将模板字段与外部数据关联,可高效完成大批量文档自动化生成。
A:可以。Spire.Doc for Java 支持将文档转换为 PDF 等多种格式,只需使用 saveToFile() 方法并指定 FileFormat.PDF 参数即可。
A:建议先在Word模板中设置好所有需要的格式,然后在需要插入动态内容的位置使用占位符或书签。生成文档时,这些标记周围的格式会自动保留。
A:邮件合并专为将数据库类数据与文档合并而设计,支持记录重复节等高级功能;而文本替换更简单,但对表格数据的处理不如邮件合并灵活。
如果您需要去除生成文档中的评估提示或解除功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.XLS for Python 15.5.0 现已正式发布。最新版本支持给 shape 分组。此外,本次更新还修复了一些已知问题,例如将 chart 保存为 image 时,程序报"SpireException: Arg_InvalidCastException"错的问题。详情查看下列内容。
新功能:
workbook = Workbook()
workbook.LoadFromFile(inputFile)
worksheet = workbook.Worksheets[0]
shape1 = worksheet.PrstGeomShapes[0]
shape2 = worksheet.PrstGeomShapes[1]
groupShapeCollection = worksheet.GetGroupShapeCollection()
groupShapeCollection.Group([shape1, shape2])
workbook.SaveToFile(outputFile, ExcelVersion.Version2013)
workbook.Dispose()wb = Workbook()
wb.LoadFromFile(inputFile)
sheet = wb.Worksheets[0]
# Create a cell style and set the color
style = wb.Styles.Add("Mystyle")
style.Font.FontName = "Arial"
style2 = wb.Styles.Add("Mystyle1")
style2.Font.FontName = "Times New Roman"
style3 = wb.Styles.Add("Mystyle2")
style3.Font.FontName = "宋体"
wb.Worksheets[0].ReplaceAll("Brillux", style,"e-iceblue", style2)
wb.Worksheets[0].ReplaceAll("3342sdf",style, "问题内容", style3)
wb.SaveToFile(outputFile)
wb.Dispose()workbook = Workbook()
workbook.LoadFromFile(inputFile)
sheet = workbook.Worksheets.get_Item("Tabular Pivot")
table = sheet.PivotTables.get_Item(0)
table.PivotFields[1].CustomName = "fieldName1"
table.PivotFields[2].CustomName = "fieldName2"
table.RowFields[0].CustomName = "rowName"
table.ColumnFields[0].CustomName = "colName"
table.PivotFields[0].CustomName = "fieldName0"
table.DataFields[0].CustomName = "DataName"
table.CalculateData()
workbook.SaveToFile(outputFile, ExcelVersion.Version2013)
workbook.Dispose()workbook = Workbook()
workbook.LoadFromFile(inputFile)
workbook.TrackedChanges(True);
workbook.SaveToFile(outputFile, ExcelVersion.Version2013);
workbook.Dispose()workbook = Workbook()
workbook.LoadFromFile(inputFile)
sheet = workbook.Worksheets[0]
sheet.Range["D1"].InsertOrUpdateCellImage(inputFile_Img,True)
workbook.SaveToFile(outputFile,ExcelVersion.Version2013)
workbook.Dispose()调整::
问题修复:
在库存管理、零售系统、物流以及各类数据密集型应用中,条形码扮演着至关重要的角色。对于开发者而言,使用 Python 生成条形码可能会非常复杂而难以实现,尤其是在处理多种条码格式或需要大规模自动化生成的情况下。因此,选择一款功能强大、支持多种条形码类型并具备批量处理能力的 Python 条形码生成库尤为重要。
本文将详细介绍如何使用 Spire.Barcode for Python 高效生成条形码,并提供完整代码示例,助开发者快速上手条形码开发。
目录
Spire.Barcode for Python 是一款专业且易于使用的 Python 条形码生成与识别库,专为需要在应用程序中集成条形码功能的开发者打造。它的主要优势包括:
您可以通过 pip 命令轻松安装 Spire.Barcode for Python:
pip install spire.barcode
如果只需执行简单的条形码生成任务,也可以选择免费版本 Free Spire.Barcode for Python
pip install spire.barcode.free
在 Python 中生成条形码的基本流程包括:指定条形码类型、设置编码内容、生成图像并输出。使用 Spire.Barcode,只需几行代码即可完成条形码的配置与生成。
第一步:导入所需模块
from spire.barcode import BarcodeSettings, BarCodeType, BarCodeGenerator, Code128SetMode, FontStyle, Color
创建 BarcodeSettings 对象并定义条形码属性:
# Create a BarcodeSettings object
barcodeSettings = BarcodeSettings()
# Set the barcode type
barcodeSettings.Type = BarCodeType.Code128
# Set the barcode data
barcodeSettings.Data = "ABC123456789"
# Set the barcode code128 set mode
barcodeSettings.Code128SetMode = Code128SetMode.Auto
# Choose the data display position
barcodeSettings.ShowTextOnBottom = True
# Set the bottom text and style
barcodeSettings.BottomText = "Code 128 Example"
barcodeSettings.SetTextFont("Arial", 12.0, FontStyle.Regular)
barcodeSettings.ShowBottomText = True
# Set the background color
barcodeSettings.BackColor = Color.get_Beige()
使用配置的 BarcodeSettings 创建 BarCodeGenerator 对象,然后生成数据流形式的条形码图像,并保存到本地文件:
# Create a BarCodeGenerator object
barcodeGenerator = BarCodeGenerator(barcodeSettings)
# Generate the barcode image
barcodeImage = barcodeGenerator.GenerateImage()
# Save the image
with open("output/Code 128.png", "wb") as fp:
fp.write(barcodeImage)
生成的 Code 128 条形码:

该代码用于生成 Code 128 条形码并将其保存为图像,替换 BarCodeType 和 Data 值,并配置其他参数,可生成其他类型的条形码。
Spire.Barcode for Python 支持市场上常见的 1D 线性条码、二维码、堆叠码和邮政条码,覆盖零售、物流、票务等多个应用场景。
| 条码类别 | 示例类型 | 免费版 | 商业版 |
| 条形码 | Codabar, Code11, Code25, Interleaved25, Code39, Code39Extended, Code93, Code93Extended, Code128, EAN8, EAN13, EAN128, EAN14, UPCA, UPCE, MSI, PostNet, Planet, SCC14, SSCC18, ITF14, ITF6, PZN, OPC | ✅(部分) | ✅(全部) |
| 二维码 | QRCode, DataMatrix, Pdf417, Pdf417Macro, Aztec, MicroQR | ✅(仅 QRCode) | ✅ |
| 堆叠/复合码 | RSS14, RSS14Truncated, RSSLimited, RSSExpanded | ❌ | ✅ |
| 邮政条码 | USPS, SwissPostParcel, DeutschePostIdentcode, DeutschePostLeitcode, RoyalMail4State, SingaporePost4State | ❌ | ✅ |
Spire.Barcode 还支持批量生成条形码图像,适合用于库存标识、物流标签或自动化系统中大规模条形码生成的需求。
data_list = ["Barcode 1", "Barcode 2", "Barcode 3"]
for item in data_list:
settings = BarcodeSettings()
settings.Type = BarCodeType.Code39
settings.Data = item
generator = BarCodeGenerator(settings)
image_stream = generator.GenerateImage()
with open(f"output/{item}.png", "wb") as file:
file.write(image_stream)
此 Python 代码将每条数据自动生成一个条形码图像,极大提升批量处理效率。
使用 Spire.Barcode for Python,开发者可以快速、高效地在 Python 程序中集成条形码生成功能。不论是创建单个 Code 128 条码,还是自动批量生成二维码,这款 Python 条形码库都提供了强大的功能支持和灵活的定制能力。凭借对多种编码格式的支持以及简洁的 API 设计,它是开发者在条码处理方面的理想工具。
您可以使用 Spire.Barcode 等 Python 条形码库,配置条码类型与数据内容,生成图像并保存本地,过程简便高效。
条形码通过将字符串数据编码为可视的条形图案(线条或模块)生成。借助 Spire.Barcode 等库,您可将输入数据转换为标准条形码图像。
只需指定条码类型(如 Code 128)、编码内容,并调用 Spire.Barcode 提供的接口生成图像即可。支持封装函数或循环实现自动化批量生成。
以下是一个使用 Spire.Barcode 生成二维码的完整示例:
from spire.barcode import BarcodeSettings, BarCodeGenerator, BarCodeType
# 创建一个BarcodeSettings对象
barcodeSettings = BarcodeSettings()
# 设置条码类型为QRCode
barcodeSettings.Type = BarCodeType.QRCode
# 设置二维码的数据
barcodeSettings.Data = "ABC123456"
# 设置二维码的分辨率
barcodeSettings.DpiX = 500
barcodeSettings.DpiY = 500
# 生成二维码并保存
barcodeGenerator = BarCodeGenerator(barcodeSettings)
with open("output/QRCode.png", "wb") as f:
f.write(barcodeGenerator.GenerateImage())
生成的二维码:

开发者可通过此方法将文本、URL、编号等信息编码为二维码,便于扫码识别。
相关文章:使用 Python 生成及识别二维码
Spire.Barcode for Python 提供免费试用许可证,解除功能限制与水印。该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。,全面体验这款强大条形码生成工具带来的开发便利!
Spire.XLS for JavaScript 15.5.0 更新已发布。本次更新新增 19 个新功能,包括对 Shape 分组、开启修订模式和嵌入图片到单元格等。此外,该版本还升级了 SkiaSharp 并增强了 Shape 到图片的转换功能。详情请阅读以下内容。
新功能:
const workbook = wasmModule.Workbook.Create();
const sheet = workbook.Worksheets.get(0);
const shape1 = sheet.PrstGeomShapes.AddPrstGeomShape(1, 3, 50, 50, spirexls.PrstGeomShapeType.RoundRect);
const shape2 = sheet.PrstGeomShapes.AddPrstGeomShape(5, 3, 50, 50, spirexls.PrstGeomShapeType.Triangle);
const groupShapeCollection = sheet.GroupShapeCollection;
groupShapeCollection.Group([shape1, shape2]);
workbook.SaveToFile(outputFileName,spirexls.ExcelVersion.Version2013);const workbook = wasmModule.Workbook.Create();
workbook.LoadFromFile(inputFileName);
workbook.TrackedChanges = true;
const outputFileName = "out.xlsx";
workbook.SaveToFile(outputFileName, spirexls.ExcelVersion.Version2013);const workbook = wasmModule.Workbook.Create();
workbook.LoadFromFile(inputFileName);
const params = {
fileName: imageName,
scale: true
}
const sheet = workbook.Worksheets.get(0);
sheet.Range.get("B1").InsertOrUpdateCellImage(params);
const outputFileName="out.xlsx";
workbook.SaveToFile(outputFileName);调整::
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-XLS-Javascript.html
通过编程方式从 Word 文档中提取图片,可以用于自动化文档处理任务。本文将演示如何使用 C# 和 Spire.Doc for .NET 库从 Word 文件中提取图片。 Spire.Doc 是一个功能强大的 .NET 库,能够帮助开发者高效操作 Word 文档。
在开始提取图片之前,你需要安装 Spire.Doc for .NET。方法如下:
安装完成后,即可开始操作。
以下 C# 代码展示了如何从 Word 文档中提取图片:
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
namespace ExtractImages
{
class Program
{
static void Main(string[] args)
{
// 初始化一个 Document 对象
Document document = new Document();
// 加载 Word 文件
document.LoadFromFile("https://cdn.e-iceblue.cn/C:\\Users\\Administrator\\Desktop\\input.docx");
// 图像文件计数器
int index = 0;
// 遍历文档中的每个节
foreach (Section section in document.Sections)
{
// 遍历节中的段落
foreach (Paragraph paragraph in section.Paragraphs)
{
// 遍历段落中的对象
foreach (DocumentObject docObject in paragraph.ChildObjects)
{
// 检查对象是否为图像
if (docObject.DocumentObjectType == DocumentObjectType.Picture)
{
// 将图像保存为 PNG 文件
DocPicture picture = docObject as DocPicture;
picture.Image.Save(string.Format("output/image_{0}.png", index), System.Drawing.Imaging.ImageFormat.Png);
index++;
}
}
}
}
// 释放资源
document.Dispose();
}
}
}
提取的图片将保存到"output"文件夹中,文件名格式为 image_0.png、image_1.png 等。

try {
// 图片提取代码
}
catch (Exception ex) {
Console.WriteLine($"错误:{ex.Message}");
}
使用 C# 的 Spire.Doc 库能简化 Word 文档图片提取流程,这种方法高效且易于集成到更复杂的文档处理工作流中。
除图片外,Spire.Doc 还支持提取 Word 文档中的多种其他元素,例如:
无论是构建文档管理系统还是自动化报告生成,Spire.Doc 都提供了可靠的编程方式来操作Word文档。
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
Spire.PDF 11.4.10 现已正式发布。该版本支持使用 .NET Standard DLL 在 Window 和 Linux 系统中进行打印,同时还支持获取按钮中的 PdfHideAction。此外,一些在转换 PDF 到图片、保存文件时出现的问题也已成功被修复。详情请查阅以下内容。
新功能:
// 加载PDF文档
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(inputFile);
// 创建StringBuilder类的对象
StringBuilder sb = new StringBuilder();
// 获取文档中的表单
PdfFormWidget formWidget = doc.Form as PdfFormWidget;
// 遍历每一个表单域
for (int i = 0; i < formWidget.FieldsWidget.List.Count; i++)
{
PdfField field = formWidget.FieldsWidget.List[i] as PdfField;
// 获取ButtonField
if (field is PdfButtonWidgetFieldWidget)
{
PdfButtonWidgetFieldWidget buttonField = field as PdfButtonWidgetFieldWidget;
// 获取表单域名
string filename = buttonField.Name;
// 获取动作
PdfAction action = buttonField.Actions.MouseDown;
if (buttonField.Actions.MouseDown != null && buttonField.Actions.MouseDown is PdfHideAction)
{
var btnAction = (PdfHideAction)buttonField.Actions.MouseDown;
sb.AppendLine(filename + "-MouseDown-Hide-" + btnAction.IsHide.ToString());
sb.AppendLine(filename + "-MouseDown-fname-" + btnAction.FieldName[0].ToString());
}
}
}
File.WriteAllText(outputFile, sb.ToString());
doc.Dispose();
PdfDocument doc = new PdfDocument();
doc.LoadFromFile(pdffile);
doc.PrintSettings.SelectPageRange(1, 5);
if(doc.PrintSettings.CanDuplex)
{
doc.PrintSettings.Duplex = PdfDuplex.Vertical;
}
doc.Print();
问题修复: