Aspose.Words使用教程之如何寫入純文字(TXT)檔案,表的合併與拆分

風靈使發表於2018-08-16

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

相關文章