Aspose.Words
通过使用[Document]
构造函数可以和其他文档格式一样输入纯文本数据。
Example
输入一个纯文本文件到一个Aspose.Words
文档对象里面。
using System;
using System.IO;
using System.Reflection;
using System.Text;
using Aspose.Words;
namespace LoadTxt
{
class Program
{
public static void Main(string[] args)
{
// Sample infrastructure.
string exeDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + Path.DirectorySeparatorChar;
string dataDir = new Uri(new Uri(exeDir), @"../../Data/").LocalPath;
// The encoding of the text file is automatically detected.
Document doc = new Document(dataDir + "LoadTxt.txt");
// Save as any Aspose.Words supported format, such as DOCX.
doc.Save(dataDir + "LoadTxt Out.docx");
}
}
}
文本导入功能
纯文本格式是一种基本的格式,不需要高级的文本处理器查看或编辑,然而一些纯文本文件试图证明更复杂的格式例如列表和缩进。例如列表可以表示为一系列每个从相同的字符开始的线。
Aspose.Words
试图检测和加载一些特性进入一个新文档例如等价的Microsoft word
功能而不是纯文本。
下表显示了文本导入引擎的关键特性:
样本转换
样本输入(纯文本文件)
输出文档
文本文件加载到Aspose
的结果,保存为如下文档。
注意,前面的空间解释为缩进,列表被加载适当的列表功能。
Aspose.Words
文档对象模型的表格由独立行和单元格组成,那样可以方便地实现加入或划分表格。
为了可以操作表格来与另外表格进行拆分与添加,我们只需要将一个表的行移动到另一个表里面即可。
两张表结合为一张表:
注意:第二张表的行被转移到第一张表的末尾并且第二张表会被删除。
// Load the document.
Document doc = new Document(MyDir + "Table.Document.doc");
// Get the first and second table in the document.
// The rows from the second table will be appended to the end of the first table.
Table firstTable = (Table)doc.GetChild(NodeType.Table, 0, true);
Table secondTable = (Table)doc.GetChild(NodeType.Table, 1, true);
// Append all rows from the current table to the next.
// Due to the design of tables even tables with different cell count and widths can be joined into one table.
while (secondTable.HasChildNodes)
firstTable.Rows.Add(secondTable.FirstRow);
// Remove the empty table container.
secondTable.Remove();
doc.Save(MyDir + "Table.CombineTables Out.doc");
拆分一张表为两张独立表:
注意:我们首先需要选择一个在哪儿分割表的行。一旦我们知道这个地方,遵循这些简单的步骤我们可以从原始表创建两张表:
1.创建一个复制的表,然后从原始表移动行并且插入进这张表。
2.从指定的行所有后续行移动到第二张表。
// Load the document.
Document doc = new Document(MyDir + "Table.SimpleTable.doc");
// Get the first table in the document.
Table firstTable = (Table)doc.GetChild(NodeType.Table, 0, true);
// We will split the table at the third row (inclusive).
Row row = firstTable.Rows[2];
// Create a new container for the split table.
Table table = (Table)firstTable.Clone(false);
// Insert the container after the original.
firstTable.ParentNode.InsertAfter(table, firstTable);
// Add a buffer paragraph to ensure the tables stay apart.
firstTable.ParentNode.InsertAfter(new Paragraph(doc), firstTable);
Row currentRow;
do
{
currentRow = firstTable.LastRow;
table.PrependChild(currentRow);
}
while
(currentRow != row);
doc.Save(MyDir + "Table.SplitTable Out.doc");