尊敬的顾客朋友:
2025中秋节和国庆节将至,成都冰蓝科技有限公司全体职工在此向您致以最诚挚的祝福与问候!为满足节日期间的客户需求,我司就国庆放假安排做出如下通知:
因放假给您带来的不便,我们深表歉意。
恭祝:节日快乐,万事顺遂!
邮件地址:
Spire.Office for Java 10.9.0 更新已发布。在该版本中,Spire.Doc for Java 为 Word 转 Markdown 增加了多项新功能;Spire.Presentation for Java 新增了快速获取幻灯片数量的方法;Spire.PDF for Java 在加载文档时优化了内存消耗。本次发布还修复了大量已知问题,详细内容请见下文。
https://www.e-iceblue.cn/Downloads/Spire-Office-JAVA.html
新功能:
doc.getMarkdownExportOptions().setImagesAsBase64(true);
doc.getMarkdownExportOptions().setImagesFolder(ImagesFolder);
doc.getMarkdownExportOptions().setImagesFolderAlias(file_imageFile.getCanonicalPath());
doc.getMarkdownExportOptions().setLinkOutputMode(MarkdownLinkOutputMode.Inline);
doc.getMarkdownExportOptions().setListOutputMode(MarkdownListOutputMode.PlainText);
doc.getMarkdownExportOptions().setOfficeMathOutputMode(MarkdownOfficeMathOutputMode.Image);
doc.getMarkdownExportOptions().setSaveAsHtml(MarkdownSaveAsHtml.Tables);
doc.getMarkdownExportOptions().setSaveUnderlineFormatting(true);
doc.getMarkdownExportOptions().setTableTextAlignment(TableTextAlignment.Center);
问题修复:
新功能:
// 流方式:
InputStream stream=new FileInputStream(inputFile);
int count = Presentation.getSlidesCount(stream);
// 文件路径方式:
int count = Presentation.getSlidesCount(inputFile);
问题修复:
优化:
问题修复:
问题修复:
Spire.DocViewer 8.9.4 已发布,该版本移除了三个安全相关依赖项,同时推出了跨平台的 .NET 7.0 通用版本以及面向 Android 和 Windows 的平台专用版本,既确保了广泛的兼容性,又实现了深度的系统集成。具体更新详情如下。
调整:
Spire.Doc 13.9.10 现已发布。该版本公开了几个用于精细化文档样式控制的核心接口。此外还支持移除文档样式和添加预置表格样式等。详情如下。
新功能:
IStyle style = document.Styles.FindByName("Normal");
if (style != null && style is ICharacterStyle)
{
ICharacterStyle cStyle = style as ICharacterStyle;
cStyle.CharacterFormat.FontName = "cambria";
cStyle.CharacterFormat.FontSize = 14;
cStyle.CharacterFormat.Bold = true;
cStyle.CharacterFormat.TextColor = Color.FromArgb(42, 123, 136);
}
string pStyleName = "testStyle";
Document document = new Document();
ParagraphStyle pStyle = (ParagraphStyle)document.Styles.Add(StyleType.ParagraphStyle, pStyleName);
pStyle.CharacterFormat.FontName = "Calibri";
pStyle.CharacterFormat.FontSize = 16;
pStyle.CharacterFormat.Bold = true;
pStyle.CharacterFormat.TextColor = Color.DarkRed;
Section section = document.AddSection();
Paragraph para = section.AddParagraph();
para.ApplyStyle(pStyle);
para.AppendText("Hello world!");
Style firstParaStyle = document.FirstSection.Body.FirstParagraph.Format.Style;
document.SaveToFile(outputDocxFile1, FileFormat.Docx);
document.Styles[pStyleName].RemoveSelf();
document.SaveToFile(outputDocxFile2, FileFormat.Docx);
Document doc = new Document();
Section section = doc.AddSection();
Table table = section.AddTable();
table.ResetCells(15, 4);
for (int i = 0; i < 15; i++)
{
TableRow row = table.Rows[i];
for (int j = 0; j < 4; j++)
{
TableCell cell = row.Cells[j];
cell.AddParagraph().AppendText(string.Format("{0} column.", (j % 2 == 0 ? "Even" : "Odd")));
cell.AddParagraph().AppendText(string.Format("Row banding {0}", (i % 3 == 0 ? "start" : "continuation")));
}
}
TableStyle tableStyle = (TableStyle)doc.Styles.Add(StyleType.TableStyle, "TestTableStyle1");
tableStyle.Borders.Color = Color.Black;
tableStyle.Borders.BorderType = BorderStyle.Double;
tableStyle.RowStripe = 3;
tableStyle.ConditionalStyles[TableConditionalStyleType.OddRowStripe].Shading.BackgroundPatternColor = Color.LightBlue;
tableStyle.ConditionalStyles[TableConditionalStyleType.EvenRowStripe].Shading.BackgroundPatternColor = Color.LightCyan;
tableStyle.ColumnStripe = 1;
tableStyle.ConditionalStyles[TableConditionalStyleType.EvenColumnStripe].Shading.BackgroundPatternColor = Color.LightPink;
table.ApplyStyle(tableStyle);
table.Format.StyleOptions = table.Format.StyleOptions | TableStyleOptions.ColumnStripe;
doc.SaveToFile(outputDocxFile1, FileFormat.Docx);
Document doc = new Document();
Section section = doc.AddSection();
TableStyle tableStyle = (TableStyle)doc.Styles.Add(StyleType.TableStyle, "TestTableStyle1");
tableStyle.HorizontalAlignment = RowAlignment.Center;
tableStyle.Borders.Color = Color.Blue;
tableStyle.Borders.BorderType = BorderStyle.Single;
Table table = section.AddTable();
table.ResetCells(1, 1);
table.Rows[0].Cells[0].AddParagraph().AppendText("Aligned to the center of the page");
table.PreferredWidth = PreferredWidth.FromPoints(300);
table.ApplyStyle(tableStyle);
section.AddParagraph().AppendText(" ");
tableStyle = (TableStyle)doc.Styles.Add(StyleType.TableStyle, "TestTableStyle2");
tableStyle.LeftIndent = 55;
tableStyle.Borders.Color = Color.Green;
tableStyle.Borders.BorderType = BorderStyle.Single;
table = section.AddTable();
table.ResetCells(1, 1);
table.Rows[0].Cells[0].AddParagraph().AppendText("Aligned according to left indent");
table.PreferredWidth = PreferredWidth.FromPoints(300);
table.Format.Style = tableStyle;
doc.SaveToFile(outputDocxFile1, FileFormat.Docx);
Document doc = new Document();
Section section = doc.AddSection();
Table table = section.AddTable();
table.ResetCells(15, 4);
for (int i = 0; i < 15; i++)
{
TableRow row = table.Rows[i];
for (int j = 0; j < 4; j++)
{
TableCell cell = row.Cells[j];
cell.AddParagraph().AppendText(string.Format("{0} column.", (j % 2 == 0 ? "Even" : "Odd")));
cell.AddParagraph().AppendText(string.Format("Row banding {0}", (i % 2 == 0 ? "Even" : "Odd")));
}
}
TableStyle tableStyle = doc.AddStyle(DefaultTableStyle.LightListAccent3);
table.ApplyStyle(tableStyle);
doc.SaveToFile(outputDocxFile1, FileFormat.Docx);
在处理大型 Excel 文件时,常常需要合并行、列或特定的单元格区域。这样可以使表格中的数据更加清晰,还可以提高易读性。仅仅只需要几行代码,你就可以轻松通过 C# 或者 VB.NET 合并 Excel 单元格,还可以同时将合并后的单元格设置为居中。不管是合并整行、整列还是格式化指定区域,本文的代码实例将展示如何自动化单元格合并,并提升你的工作效率。

如果你常常在 .NET 项目中处理 Excel 文件,比如说合并单元格、格式化数据或者是生成报告,那么一款强大又稳定的 Excel 组件必不可少。Spire.XLS 就是这样的一款轻量级且功能丰富的库,可以在无需依赖 Microsoft Office 的情况下,直接通过 C# 或 VB.NET 创建、读取和修改 Excel 文件。你只需几秒钟就能通过 NuGet 将其添加到项目中:
PM> Install-Package Spire.XLS
完成安装后,就可以轻松将 Excel 工作流程自动化。
在 Excel 文件处理中,合并行或列很常见,可以帮助整理数据并让表格看起来更专业。例如,你可以将第一行横跨多列进行合并,从而形成一个清晰、居中的表格标题。使用 C# 代码,这一过程可以轻便快捷地完成,不仅节省时间,还能在处理大型 Excel 文件时保持格式不变。
下面是一个示例代码,演示如何使用 C# 在 Excel 中合并第一行并将其内容居中显示:
using Spire.Xls;
namespace MergeCells
{
class Program
{
static void Main(string[] args)
{
// 创建一个 Workbook 类的对象,并加载一个 Excel 文件
Workbook workbook = new Workbook();
workbook.LoadFromFile("\\销售汇总.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 合并第一行
sheet.Rows[0].Merge();
// 合并第一列
//sheet.Columns[0].Merge();
// 设置单元格居中
sheet.Rows[0].Style.HorizontalAlignment = HorizontalAlignType.Center;
sheet.Rows[0].Style.VerticalAlignment = VerticalAlignType.Center;
// 保存修改后的文件
workbook.SaveToFile("\\合并并居中单元格.xlsx");
}
}
}
下方是合并第一行的 Excel 文件展示:

代码步骤说明
上面的 C# 代码用于在 Excel 文件中合并行,同样也可以用于合并列(代码中已用注释标明)。
在合并单元格以创建整洁的表头后,也有可能需要撤销此操作。同样使用 C# 或 VB.NET 也可以轻松取消单元格合并,恢复原始的单元格布局,并且不会影响其中的数据。
在 Excel 中使用 C# 合并特定的单元格区域非常实用,尤其是在需要突出显示某个数据区块时,例如汇总行或一组相关的列。这一过程与合并整行或整列非常相似,你仍然可以通过 Worksheet.Range[].Merge() 方法将 Merge() 应用于 CellRange 对象。只需指定要合并的确切区域,就能创建清晰、有条理的布局,并且可以在多个工作表或文件中自动执行,无需手动逐个调整单元格。
下面的示例代码演示了如何在 Excel 工作表中使用 C# 合并单元格区域 "B6:E6":
using Spire.Xls;
namespace MergeCells
{
class Program
{
static void Main(string[] args)
{
// 创建一个 Workbook 实例并加载 Excel 文件
Workbook workbook = new Workbook();
workbook.LoadFromFile("\\销售汇总.xlsx");
// 获取第一个工作表
Worksheet sheet = workbook.Worksheets[0];
// 合并单元格区域
sheet.Range["B6:E6"].Merge();
// 保存修改后的文件
workbook.SaveToFile("\\合并单元格区域.xlsx");
}
}
}
下图为合并后的 Excel 文件:

与 C# 类似,你也可以使用 VB.NET 在 Excel 中合并并居中单元格,以创建清晰的表格标题或突出关键数据区域。代码的步骤基本相同,Merge() 方法也同样适用于 VB.NET 环境。 如果需要,你也可以使用我们提供的 C# ↔ VB.NET 代码转换工具,轻松将 C# 示例转换为 VB.NET,以便更快地应用到你的项目中。
下面是使用 VB.NET 在 Excel 中合并第一行并将其内容居中显示的完整代码示例:
Imports Spire.Xls
Namespace MergeCells
Friend Class Program
Private Shared Sub Main(args As String())
' 创建一个 Workbook 类的对象,并加载一个 Excel 文件
Dim workbook As Workbook = New Workbook()
workbook.LoadFromFile("\销售汇总.xlsx")
' 获取第一个工作表
Dim sheet As Worksheet = workbook.Worksheets(0)
' 合并第一行
sheet.Rows(0).Merge()
' 合并第一列
'sheet.Columns[0].Merge();
' 设置单元格居中
sheet.Rows(0).Style.HorizontalAlignment = HorizontalAlignType.Center
sheet.Rows(0).Style.VerticalAlignment = VerticalAlignType.Center
' 保存修改后的文件
workbook.SaveToFile("\合并并居中单元格.xlsx")
End Sub
End Class
End Namespace
通过以上示例,你可以自由使用 C# 在 Excel 中合并单元格,无论是整行、整列还是特定区域都可以轻松搞定。利用 Spire.XLS,实现 Excel 文件的自动化合并,创建清晰、专业的电子表格。感兴趣的话可以该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取 30 天免费许可证,无限制地体验全部功能!

JSON(JavaScript Object Notation)是 Web 应用、API 和配置文件中最常用的结构化数据格式,而 CSV(Comma-Separated Values)是数据分析、报表生成以及与 Excel 无缝集成的常用格式。将 JSON 转换为 CSV 是开发者、数据工程师和分析师的常见需求,它能将层级化的 JSON 数据转换为易于处理、可视化和自动化的表格格式。
本教程将详细演示如何在 Python 中将 JSON 转换为 CSV,包括扁平 JSON 和嵌套 JSON 的处理方法,并提供处理大型 JSON 数据集的性能优化技巧。通过本教程,您可以高效地将 JSON 数据导入 Excel 或其他表格系统,实现快速分析和报表生成。
虽然 JSON 非常适合表示层级化和复杂的数据,但在实际应用中,CSV 有几个显著优势:
JSON 转 CSV 实际应用场景:
将 JSON 转为 CSV,可以将复杂的结构化数据转换为表格形式,便于分析、报表生成和数据迁移,因此在实际工作中非常常见。
在使用 Python 将 JSON 转换为 CSV 之前,先了解 JSON 的两种常见结构非常重要:
[
{"姓名": "张三", "年龄": 28, "城市": "北京"},
{"姓名": "李四", "年龄": 34, "城市": "上海"}
]
[
{
"姓名": "张三",
"年龄": 28,
"联系方式": {"邮箱": "zhangsan @example.com", "电话": "123-456"}
}
]
扁平 JSON 可以直接映射为 CSV 的列,而嵌套 JSON 则需要先进行扁平化处理,才能正确地表示为表格格式。
在 Python 中导出 JSON 为 CSV,可以使用 Spire.XLS for Python。它是一个功能强大的电子表格库,支持在 Python 中创建、读取、操作和导出电子表格文件,兼容的格式包括 .xls、.xlsx、.csv 和 .ods等。
安装方法
可以通过运行以下 pip 命令从 PyPI 安装Spire.XLS:
pip install spire.xls
如果需要安装指导,可参考教程:如何在 Windows 中安装 Spire.XLS for Python。
安装完成后,在 Python 脚本中导入库:
from spire.xls import
将 JSON 转换为 CSV 一般包含四个主要步骤:加载 JSON 数据、创建工作簿、写入表头和数据行,以及导出最终 CSV 文件。下面分别演示扁平 JSON 和嵌套 JSON 的处理方式。
步骤 1:加载 JSON 并创建工作簿
首先,将 JSON 文件加载到 Python 中,并创建一个新的工作簿,用于写入数据。
import json
from spire.xls import *
# 加载 JSON 数据
with open("data-zh.json", encoding="utf-8") as f:
data = json.load(f)
# 创建工作簿并获取工作表
workbook = Workbook()
sheet = workbook.Worksheets[0]
说明:
步骤 2:动态生成表头
在 CSV 中,每一列需要有对应的列名(表头)。为了让 CSV 与原始 JSON 的数据结构一致,我们可以根据 JSON 对象的键动态生成表头。
# 从 JSON 顶层对象中提取所有键作为表头
headers = list(data[0].keys())
# 将表头写入工作表的第一行
for col, header in enumerate(headers, start=1):
sheet.Range[1, col].Value = header
说明:
步骤 3:写入数据行
表头设置完成后,将每个 JSON 对象的值逐行写入工作表。
# 将每个 JSON 对象的值填入后续行
for row_index, item in enumerate(data, start=2):
for col_index, key in enumerate(headers, start=1):
value = item.get(key, "")
sheet.Range[row_index, col_index].Value = str(value) if value is not None else ""
说明:
步骤 4:保存工作表为 CSV
最后,将工作表保存为 CSV 文件,并释放资源。
# 保存为 CSV 文件
sheet.SaveToFile("output.csv", ",", Encoding.get_UTF8())
workbook.Dispose()

本示例使用 Python 内置的 json 模块解析 JSON 数据,如需了解更多 json 模块的功能和使用方法,请参考 Python 官方文档。
如果你还想实现将 CSV 转换为 JSON,请参考教程:Python CSV 转 JSON 教程。
当 JSON 对象中包含嵌套字典或数组时,无法直接导出为 CSV,因为 CSV 是扁平格式。为了保证数据兼容性,必须先将嵌套字段扁平化,以便所有数据都能以可读的形式保存在 CSV 中。
假设有如下 JSON 文件(nested.json):
[
{
"姓名": "张三",
"年龄": 28,
"城市": "北京",
"联系方式": {"邮箱": "zhangsan @example.com", "电话": "123-456"},
"技能": ["Python", "Excel", "SQL"]
},
{
"姓名": "李四",
"年龄": 34,
"城市": "上海",
"联系方式": {"邮箱": "lisi @example.com", "电话": "987-654"},
"技能": ["Java", "CSV", "JSON"]
}
]
这个 JSON 数据包含:
要将所有字段导出为 CSV,需要将嵌套字典扁平化,并将数组合并为以分号分隔的字符串。下面的步骤展示了如何实现这一操作。
步骤 1:扁平化嵌套 JSON 数据
import json
from spire.xls import *
# ---------------------------
# 步骤 1:扁平化嵌套 JSON
# ---------------------------
def flatten_json(item):
flat = {}
for key, value in item.items():
if isinstance(value, dict):
# 如果字段是字典,则使用“父键.子键”形式生成新键
for sub_key, sub_value in value.items():
flat[f"{key}.{sub_key}"] = sub_value
elif isinstance(value, list):
# 如果字段是列表,则将所有元素用分号连接成字符串
flat[key] = "; ".join(map(str, value))
else:
flat[key] = value
return flat
# 加载 JSON 数据
with open("nested.json", encoding="utf-8") as f:
data = json.load(f)
# 扁平化每个 JSON 对象
flat_data = [flatten_json(item) for item in data]
说明:
步骤 2:将扁平化数据导出为 CSV
# ------------------------------------------------
# 步骤 2:导出扁平化数据为 CSV
# ------------------------------------------------
workbook = Workbook()
sheet = workbook.Worksheets[0]
# 从扁平化 JSON 的键生成表头
headers = list(flat_data[0].keys())
for col, header in enumerate(headers, start=1):
sheet.Range[1, col].Value = header
# 将扁平化数据写入工作表
for row_index, item in enumerate(flat_data, start=2):
for col_index, key in enumerate(headers, start=1):
value = item.get(key, "")
sheet.Range[row_index, col_index].Value = str(value) if value is not None else ""
# 保存为 CSV 文件(逗号分隔,UTF-8 编码)
sheet.SaveToFile("output.csv", ",", Encoding.get_UTF8())
# 释放资源
workbook.Dispose()
说明:

在处理大型或结构复杂的 JSON 文件时,可以采用以下策略来优化内存使用、提升处理效率,并保证生成的 CSV 数据准确整洁:
在 Python 中将 JSON 转换为 CSV 是一项非常实用的技能。使用 Spire.XLS for Python,可以轻松将扁平或嵌套 JSON 转为结构化的 CSV 文件,同时保持表头和数据格式一致。即便面对大型或复杂的数据集,也能高效完成导出,使 JSON 数据能够快速应用于报表、分析或系统集成。
答:可以。通过扁平化嵌套的 JSON 对象(包括字典和数组),可以将所有层级数据导出为可读的 CSV 列,确保表格中完整保留原始数据结构。
答:可以通过 pip 安装:
pip install spire.xls
安装完成后,在 Python 脚本中导入即可:
from spire.xls import
这样就能实现无缝的 JSON 到 CSV 转换。
答:可以。可以使用分隔符(如分号 ;)将数组元素连接成单个单元格,保证多个值在 CSV 中保持可读性和一致性。
答:建议先扁平化嵌套 JSON,再按行处理数据并分批导出,这样可以降低内存占用,并确保 CSV 文件顺利生成。
答:可以。Spire.XLS 支持自定义分隔符(如逗号、分号或制表符),同时可以手动定义列顺序,使生成的 CSV 更加专业和灵活。
Spire.Doc for Java 13.9.19 现已正式发布。该版本在 Word 转 Markdown 功能中增加了更多导出配置选项,包括图片编码、输出路径、链接模式、列表格式、公式导出以及表格文本对齐方式等。同时,一些在文档修订对比、页面获取、内容格式及文件转换异常中出现的问题也得以修复。更多详情如下:
新功能:
doc.getMarkdownExportOptions().setImagesAsBase64(true);
doc.getMarkdownExportOptions().setImagesFolder(ImagesFolder);
doc.getMarkdownExportOptions().setImagesFolderAlias(file_imageFile.getCanonicalPath());
doc.getMarkdownExportOptions().setLinkOutputMode(MarkdownLinkOutputMode.Inline);
doc.getMarkdownExportOptions().setListOutputMode(MarkdownListOutputMode.PlainText);
doc.getMarkdownExportOptions().setOfficeMathOutputMode(MarkdownOfficeMathOutputMode.Image);
doc.getMarkdownExportOptions().setSaveAsHtml(MarkdownSaveAsHtml.Tables);
doc.getMarkdownExportOptions().setSaveUnderlineFormatting(true);
doc.getMarkdownExportOptions().setTableTextAlignment(TableTextAlignment.Center);
问题修复:
在.NET开发中,将 HTML 转换为纯文本是一项常见任务,无论是需要从网页提取内容、处理 HTML 邮件,还是生成轻量级文本报告。然而,HTML 的丰富格式、标签和结构元素可能会使需要干净、无格式文本的工作流程变得复杂。这就是为什么常常需要通过C# 将 HTML 转换为 TXT 文本。
Spire.Doc for .NET 简化了这一过程:它是一个强大的文档操作库,原生支持加载 HTML 文件/字符串并将其转换为干净的纯文本。本文将探讨如何使用该库在 C# 中将 HTML 转换为纯文本,包括对两个核心场景的详细分析:转换HTML字符串(内存中的内容)和HTML文件(基于磁盘的内容)。
Spire.Doc 是一个强大的文档操作库,特别适合 HTML 到文本的转换:
Spire.Doc可通过NuGet获取,这是管理依赖项的最简单方法:
Install-Package Spire.Doc
本示例将 HTML 字符串渲染到 Document 对象中,然后使用 SaveToFile() 将其保存为纯文本文件。
using Spire.Doc;
using Spire.Doc.Documents;
namespace HtmlToText
{
class Program
{
static void Main(string[] args)
{
// 定义HTML内容
string htmlContent = @"
<html>
<body>
<h1>示例HTML内容</h1>
<p>这是一个包含<strong>粗体</strong>和<em>斜体</em>文本的段落。</p>
<p>另一行带有<a href='https://example.com'>链接</a>。</p>
<ul>
<li>列表项1</li>
<li>列表项2(带有<em>斜体</em>文本)</li>
</ul>
<p>特殊字符:© & ®</p>
</body>
</html>";
// 创建Document对象
Document doc = new Document();
// 添加一个节来容纳内容
Section section = doc.AddSection();
// 添加一个段落
Paragraph paragraph = section.AddParagraph();
// 将HTML渲染到段落中
paragraph.AppendHTML(htmlContent);
// 保存为纯文本
doc.SaveToFile("Html字符串转文本.txt", FileFormat.Txt);
}
}
}
关键步骤:
<strong>、<em>)、链接、列表和特殊字符。Document对象来管理内容,并使用Section和Paragraph构建HTML渲染的结构。AppendHTML()解析HTML字符串并将其转换为文档的内部结构,保留内容层次结构。SaveToFile()将渲染的内容转换为纯文本,剥离HTML标签同时保留可读的结构。输出:

本示例直接加载 HTML 文件并将其转换为文本。适用于批处理或处理现有 HTML 文档(例如,下载的网页、本地模板)。
using Spire.Doc;
using Spire.Doc.Documents;
namespace HtmlToText
{
class Program
{
static void Main()
{
// 创建Document对象
Document doc = new Document();
// 加载HTML文件
doc.LoadFromFile("E:\\sample.html", FileFormat.Html, XHTMLValidationType.None);
// 将HTML转换为纯文本
doc.SaveToFile("HTMLtoText.txt", FileFormat.Txt);
doc.Dispose();
}
}
}
关键步骤:
Document对象来处理文件操作。LoadFromFile()导入HTML文件,FileFormat.Html指定输入类型。XHTMLValidationType.None确保与非严格 HTM L的兼容性。SaveToFile()将加载的HTML内容转换为纯文本。
要保留原始格式和样式,您可以参考 将 HTML 文件转换为 Word 的 C# 教程。
答:可以。Spire.Doc 内置了对格式错误 HTML 的容错能力,但需要禁用严格验证以确保正确解析,即加载 HTML 文件时,使用 XHTMLValidationType.None 跳过严格的 XHTML 检查:
doc.LoadFromFile("malformed.html", FileFormat.Html, XHTMLValidationType.None);
答:可以,将 HTML 加载到 Document 对象后,您可以通过对象模型访问特定元素(如段落、表格等),只提取需要的内容而不是从整个文档中提取文本。
答:可以,Spire.Doc 支持转换为多种格式,包括 Word DOC/DOCX、PDF、图片、RTF等。
A:Spire.Doc 完全支持.NET Core、.NET 5/6/7/8和.NET Framework 4.0+。这些框架在功能上没有差异,可以使用相同的代码(例如Document、AppendHTML()、SaveToFile())。
使用 Spire.Doc 在 C# 中将 HTML 转换为纯文本非常简单高效。无论是处理 HTML 字符串还是文件,Spire.Doc 都能简化整个过程,保留文本结构的同时去除所有 HTML 标签。通过本文中的示例,您可以将 HTML 转 TXT 文本的功能无缝地集成到您的 C# 应用程序中。
如需解锁 Spire.Doc 库的全部功能并移除限制,可以点击申请30天免费试用许可证。
Spire.PDF for Java 11.9.6 现已正式发布。该版本优化了加载文档时的内存消耗。同时,解决了 PDF 转换、文本提取、Grid 单元格格式设置以及图片坐标获取等方面的多个问题。更多详情如下。
优化:
问题修复:
Spire.Presentation for Python 10.9.0 已发布,该版本主要修复了插入SVG图片到多页PPT文档产生的问题。具体更新如下:
问题修复:
https://www.e-iceblue.cn/Downloads/Spire-Presentation-Python.html