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

