Aspose.Words使用教程之如何写入纯文本(TXT)文件,表的合并与拆分

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.Words

输出文档

文本文件加载到Aspose的结果,保存为如下文档。

注意,前面的空间解释为缩进,列表被加载适当的列表功能。
Aspose.Words


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");

猜你喜欢

转载自blog.csdn.net/WuLex/article/details/81702747
今日推荐