告別手動復制粘貼:C# 實現 Excel 與 TXT 文本文件高效互轉

在日常辦公和數據處理工作中,Excel 和 TXT文本文件是兩種常見的數據存儲格式。Excel文件適合進行復雜的數據分析、公式運算和圖表生成,而 TXT文件則更適合用于存儲和傳輸純文本數據,如日志、配置文件或簡單的數據列表。很多時候,我們需要在這兩種文件格式之間進行轉換,例如:

  • 將 Excel 中的表格數據導出為 TXT 文件,以便系統讀取或作為數據備份。
  • 將 TXT 文件中的原始數據導入 Excel,以便進一步整理和分析。

如果僅依靠手工操作,過程不僅繁瑣,還容易出錯。借助編程語言C#,我們可以實現高效、自動化的轉換。本文將介紹如何在C#中借助Spire.XLS for .NET庫輕松完成 Excel與 TXT 的相互轉換。


Excel 與 TXT 文件的特點對比

在介紹實現方法之前,我們先簡單對比一下兩種文件的特點:

  1. Excel 文件(.xls / .xlsx)
    - 支持多工作表結構
    - 可包含文本、數字、公式、圖表等復雜數據
    - 文件體積相對較大,但結構更清晰,適合數據處理
  2. 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 轉 TXTTXT 轉 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 文件。


常見應用場景

  1. 數據遷移:將系統導出的日志文件(TXT 格式)導入到Excel,便于統計分析。
  2. 報表生成:將 Excel 報表轉為 TXT,方便系統讀取或作為接口數據。
  3. 跨平臺數據交換:某些應用無法直接讀取 Excel 文件,通過 TXT轉換實現兼容。

總結

Excel 與 TXT文件的相互轉換在實際工作中非常常見。手動操作雖然簡單,但對于大量文件或重復任務來說效率極低。借助C# 與 Spire.XLS for .NET,開發者可以通過幾行代碼實現高效、靈活的轉換,不僅節省時間,還降低了出錯率。滿足日常辦公自動化和企業系統中的數據處理流程等多種需求。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/95455.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/95455.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/95455.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

elasticsearch學習(二)插件安裝

目錄上一篇文章查看插件安裝分詞器analysis-icu重啟實例重新查看插件上一篇文章 elasticsearch學習&#xff08;一&#xff09; 下載、安裝和初次部署 查看插件 ? bin elasticsearch-plugin list warning: ignoring JAVA_HOME/Library/Java/JavaVirtualMachines/jdk1.8.0_…

(原創)SAP ATP可用量檢查 OPJJ功能配置說明(900+字!)

前言&#xff1a;經常在ATP遇到問題&#xff0c;每次上網找都沒有相關資料&#xff0c;一氣之下直接在官網找資料收集&#xff0c;已整理相關字段與大家分享&#xff0c;避免大家走彎路附上我個人很久之前的的測試結果&#xff1a;具體字段控制說明檢查不考慮補貨提前期關聯字段…

Unity資源管理——操作一覽(編輯器下 運行時)

本文由 NRatel 歷史筆記整理而來&#xff0c;如有錯誤歡迎指正。 資源管理是Unity游戲開發中的重頭工作之一。 以下按【編輯器下】和 【運行時】&#xff0c;共十多個步驟&#xff0c;一覽總體流程&#xff08;內容巨大&#xff0c;不細展開&#xff09;。 一、資源導入Unity【…

Sentinel vs Resilience4j vs Bucket4j:分布式限流方案對比與實戰

Sentinel vs Resilience4j vs Bucket4j&#xff1a;分布式限流方案對比與實戰 在高并發微服務架構中&#xff0c;合理的限流策略是保護系統穩定性與可用性的關鍵。本文將從問題背景入手&#xff0c;對 Sentinel、Resilience4j 和 Bucket4j 三種常見的分布式限流方案進行對比&am…

Spring Boot 3.5.3 集成 Log4j2 日志系統

在 Spring Boot 3.5.3 中&#xff0c;要將默認的 Logback 替換為 Log4j2&#xff0c;需要以下步驟&#xff1a;1. 添加 Log4j2 依賴在 pom.xml中排除默認的 Logback 依賴并添加 Log4j2 依賴&#xff1a;<dependencies><!-- 排除默認的 Logback --><dependency&g…

ADB圖片上傳輪播

可以通過ADB在機器中進行上傳照片&#xff0c;進行其他圖片播放 當前系統架構分析 1. 現有組件結構 ImageCarouselActivity: 主要的輪播Activity&#xff0c;繼承自BaseBindingActivity 實現全屏顯示和沉浸式體驗使用ViewPager2進行圖片輪播支持自動輪播&#xff08;5秒間隔&…

異常處理小妙招——2.代碼的韌性:如何實現操作的原子性回滾

一、核心思想&#xff1a;什么叫“失敗原子性”&#xff1f; 想象一下你在玩一個闖關游戲&#xff0c;有一關需要你連續跳過三個平臺。 不具有原子性&#xff1a;你跳過了第一個和第二個平臺&#xff0c;但在跳第三個時失敗了、掉下去了。結果你不僅沒過關&#xff0c;連之前跳…

Crawl4AI:為LLM而生的下一代網頁爬蟲框架

在當今AI驅動的信息處理時代&#xff0c;從網頁中高效提取高質量、結構化的數據已成為連接互聯網與大語言模型&#xff08;LLM&#xff09;的關鍵橋梁。Crawl4AI作為一款開源的LLM友好型網頁爬蟲與刮板工具&#xff0c;正迅速成為開發者處理這一任務的首選解決方案。本文將深入…

輸出一個愛心

輸出效果&#xff1a;代碼實現&#xff1a;#include<iostream> #include<iomanip> #include<algorithm> using namespace std; int main() {int n;cin>>n;char a[8] {I,L,O,V,E,Y,O,U};int j 1;int k n*21;int o n*2-2;int aa 0; for(int i 0;i&…

深度集成Dify API:企業級RAG知識庫管理平臺解決方案

&#x1f3af; 需求和概述 當前基于Dify實現企業級的智能問答系統需求日益增長&#xff0c;Dify的低代碼開發框架和功能完整、靈活適應各種需求的特色得到廣大大模型和RAG開發著的歡迎。但是Dify在落地企業級應用時候&#xff0c;也面臨不少的問題&#xff0c;最突出的就是Dif…

C++循環越界問題

for (int i 0; i < historyTableList.size() - 1; i) {historyList2.push_back(historyTableList[i]); } historyList.size()0時&#xff0c;為什么會異常historyTableList.size() 返回的是 size_t 類型&#xff08;無符號整數&#xff09;當 size() 0 時&#xff0c;size…

MongoDB 從零到入門:實用指南

什么是 MongoDB&#xff1f; MongoDB 是一個流行的非關系型數據庫&#xff08;NoSQL&#xff09;&#xff0c;它使用類似 JSON 的文檔來存儲數據&#xff0c;而不是傳統的表格形式。這使得 MongoDB 非常靈活&#xff0c;特別適合處理半結構化數據和快速迭代的開發場景。 核心概…

WebRTC音頻QoS方法五(音頻變速算法之Expand算法實現)

一、概述介紹在WebRTC中&#xff0c;存在兩種擴展算法&#xff1a;PreemptiveExpand和Expand。盡管這兩種算法的目標都是擴展音頻信號&#xff0c;但它們的實現原理和應用場景卻有所不同。PreemptiveExpand&#xff08;預防性擴張&#xff09;主動擴展策略&#xff0c;旨在防止…

【Python - 基礎 - 工具】解決pycharm“No Python interpreter configured for the project”問題

解決pycharm“No Python interpreter configured for the project”問題 當你在 PyCharm 中遇到“No Python interpreter configured for the project”錯誤時&#xff0c;意味著你的項目沒有配置 Python 解釋器。以下是解決該問題的步驟。 示例 # 嘗試運行代碼時出現錯誤 prin…

Elasticsearch創建索引分片和副本大小建議

在Elasticsearch中&#xff0c;?分片(shard)和副本(replica)? 的設置直接影響集群性能、容錯能力和擴展性。以下是最佳實踐指南&#xff1a;核心概念?類型??描述??是否可修改??主分片(Primary Shard)?數據的最小存儲單元&#xff0c;每個索引被拆分成多個主分片? 索…

“人工智能+虛擬仿真”開啟新學期智慧學習之旅

在教育領域掀起數字化革新浪潮的今天&#xff0c;新學期的開啟不僅意味著知識探索新征程的起步&#xff0c;更蘊含著教育模式深度變革的無限可能。虛擬仿真技術作為教育現代化的關鍵驅動力&#xff0c;正重塑學習體驗&#xff0c;引領教育范式轉移。人工智能與虛擬仿真技術的結…

Photoshop用戶必看:讓你的PSD像JPG一樣可預覽

軟件介紹 Photoshop縮略圖補丁插件3.8.0.96是一款實用的工具&#xff0c;它能夠將PSD格式的文件&#xff08;Photoshop的專用格式&#xff09;以縮略圖的形式顯示出來。這一功能極大地提升了用戶在管理和查找圖像文件時的效率&#xff0c;使得看圖、找圖變得更加輕松便捷。該插…

idea2025.1.5安裝+pj

寫在前邊&#xff1a;如果是卸載舊版本IDEA重裝&#xff0c;一定記得之前的插件啥的&#xff0c;截個圖。還有主題字體設置啥的 目錄背景原因卸載原來版本安裝教程背景原因 原來的2022.2不支持jdk21的語言版本 卸載原來版本 1、如何徹底卸載 IDE, 可參考這篇的文章&#xff…

(四)Python控制結構(條件結構)

程序中的語句默認會按照自上而下的順序逐條執行&#xff0c;但通過一些特定的語句可以更改語句的執行順序&#xff0c;使之產生跳躍、回溯等現象&#xff0c;進而靈活地控制程序的執行流程。控制結構是編程中用于控制程序執行流程的語句&#xff0c;程序的三種基本控制結構為&a…

血緣元數據采集開放標準:OpenLineage Guides 使用 Apache Airflow? 和 OpenLineage + Marquez 入門

OpenLineage 是一個用于元數據和血緣采集的開放標準&#xff0c;專為在作業運行時動態采集數據而設計。它通過統一的命名策略定義了由作業&#xff08;Job&#xff09;、運行實例&#xff08;Run&#xff09;和數據集&#xff08;Dataset&#xff09; 組成的通用模型&#xff0…