在日常辦公和數據處理工作中,Excel 和 TXT文本文件是兩種常見的數據存儲格式。Excel文件適合進行復雜的數據分析、公式運算和圖表生成,而 TXT文件則更適合用于存儲和傳輸純文本數據,如日志、配置文件或簡單的數據列表。很多時候,我們需要在這兩種文件格式之間進行轉換,例如:
- 將 Excel 中的表格數據導出為 TXT 文件,以便系統讀取或作為數據備份。
- 將 TXT 文件中的原始數據導入 Excel,以便進一步整理和分析。
如果僅依靠手工操作,過程不僅繁瑣,還容易出錯。借助編程語言C#,我們可以實現高效、自動化的轉換。本文將介紹如何在C#中借助Spire.XLS for .NET庫輕松完成 Excel與 TXT 的相互轉換。
Excel 與 TXT 文件的特點對比
在介紹實現方法之前,我們先簡單對比一下兩種文件的特點:
- Excel 文件(.xls / .xlsx)
- 支持多工作表結構
- 可包含文本、數字、公式、圖表等復雜數據
- 文件體積相對較大,但結構更清晰,適合數據處理 - TXT 文件(.txt)
-?只包含純文本內容
-?數據通常以制表符、逗號或其他分隔符區分
-?文件體積小,易于跨平臺和系統傳輸
因此,Excel 轉換為 TXT 時,通常會選擇保留表格中的純文本和分隔符;而 TXT轉換為 Excel 時,則需要將文本按照行和列解析,轉換成表格結構。
使用 Spire.XLS for .NET 實現轉換
Spire.XLS for .NET 是一個專門用于操作 Excel文件的開發庫,支持創建、讀取、編輯和轉換 Excel 文檔。它的優點在于:
- 支持 多種文件格式轉換(Excel、CSV、TXT、PDF 等);
- 無需安裝 Microsoft Office 或 Excel 環境;
- 提供簡單易用的 API 接口,適合快速開發。
安裝方法
開發者可以在Package Manager Console中執行以下命令來從Nuget安裝Spire.XLS:
Install-Package Spire.XLS
下面分別介紹 Excel 轉 TXT 和 TXT 轉 Excel 的實現方法。
1. Excel 轉 TXT
將 Excel 文件導出為 TXT 文件的步驟通常包括:
- 加載 Excel 文件
- 選擇需要導出的工作表
- 調用保存方法,指定為 TXT 格式
示例代碼:
using?Spire.Xls;
using?System.Text;class?Program
{static?void?Main(string[]?args){//?創建Workbook對象并加載Excel文件Workbook?workbook?=?new?Workbook();workbook.LoadFromFile("示例.xlsx");//?獲取第一個工作表Worksheet?sheet?=?workbook.Worksheets[0];//?將工作表另存為TXT文件(分隔符為空格,編碼為UTF-8)sheet.SaveToFile("導出結果.txt",?"?",?Encoding.UTF8);}
}
在這個示例中,SaveToFile
方法不僅可以指定導出的文件名,還可以設置分隔符(如空格、逗號、制表符等)和編碼方式(如UTF-8)。這樣可以確保文本文件在不同系統或應用程序中都能正確讀取。
2. TXT 轉 Excel
與 Excel 轉 TXT 相比,將 TXT 文件轉換為 Excel 通常需要更多處理步驟。TXT文件本質上是純文本,需要開發者手動解析其中的行和列,再寫入到 Excel的單元格中。這樣不僅能正確還原表格結構,還可以靈活定制格式,比如加粗標題、自動調整列寬等。
下面的示例演示了如何將一個以制表符分隔的 TXT 文件導入 Excel:
using?Spire.Xls;
using?System.IO;
using?System.Collections.Generic;class?TxtToExcelConverter
{static?void?Main(){//?讀取TXT文件中的所有行string[]?lines?=?File.ReadAllLines("數據.txt");//?用列表存儲每一行的數據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];//?將TXT數據逐行逐列寫入Excelfor?(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();}
}
要點:
- 使用
File.ReadAllLines()
逐行讀取 TXT 文件。 - 每一行通過
Split('\t')
方法拆分為數組(\t
表示制表符)。如果 TXT使用逗號分隔,可以替換為Split(',')
。 - 解析后的二維數據逐行寫入 Excel 表格。
- 表頭行單獨設置為加粗,增強可讀性。
- 使用
AutoFitColumns()
自動調整列寬,使內容完整顯示。
這種方式比直接調用 LoadFromFile()
更靈活,尤其適用于格式復雜或分隔方式不統一的 TXT 文件。
常見應用場景
- 數據遷移:將系統導出的日志文件(TXT 格式)導入到Excel,便于統計分析。
- 報表生成:將 Excel 報表轉為 TXT,方便系統讀取或作為接口數據。
- 跨平臺數據交換:某些應用無法直接讀取 Excel 文件,通過 TXT轉換實現兼容。
總結
Excel 與 TXT文件的相互轉換在實際工作中非常常見。手動操作雖然簡單,但對于大量文件或重復任務來說效率極低。借助C# 與 Spire.XLS for .NET,開發者可以通過幾行代碼實現高效、靈活的轉換,不僅節省時間,還降低了出錯率。滿足日常辦公自動化和企業系統中的數據處理流程等多種需求。