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

