最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#高效實(shí)現(xiàn)Excel與CSV的互相轉(zhuǎn)換

 更新時(shí)間:2026年04月20日 08:16:19   作者:用戶372157426135  
在數(shù)據(jù)處理和報(bào)表工作流程中,將 Excel 文件和 CSV 文件互相轉(zhuǎn)換是非常常見(jiàn)的需求,本文將從基礎(chǔ)操作講起,逐步介紹自定義設(shè)置、批量處理及高級(jí)實(shí)踐技巧,幫助你在實(shí)際工作中輕松應(yīng)對(duì)各種轉(zhuǎn)換需求

在數(shù)據(jù)處理和報(bào)表工作流程中,將 Excel 文件和 CSV 文件互相轉(zhuǎn)換是非常常見(jiàn)的需求。CSV 文件輕量、易解析,非常適合與數(shù)據(jù)庫(kù)、數(shù)據(jù)分析工具或 Web 服務(wù)集成,而 Excel 則提供豐富的格式、公式和數(shù)據(jù)驗(yàn)證功能。在許多企業(yè)應(yīng)用中,你可能需要在這兩者之間靈活轉(zhuǎn)換,以便兼顧數(shù)據(jù)處理效率和可讀性。

使用 C#,你可以高效地完成這些轉(zhuǎn)換,同時(shí)確保數(shù)據(jù)完整性、格式準(zhǔn)確,并保持自動(dòng)化處理的靈活性。本文將從基礎(chǔ)操作講起,逐步介紹自定義設(shè)置、批量處理及高級(jí)實(shí)踐技巧,幫助你在實(shí)際工作中輕松應(yīng)對(duì)各種轉(zhuǎn)換需求。

準(zhǔn)備工作:安裝所需庫(kù)

在編寫代碼之前,你需要安裝一個(gè)支持 Excel 文件操作的庫(kù)。本文使用 Free Spire.XLS for .NET,它是免費(fèi)的 Excel 庫(kù),支持現(xiàn)代 Excel 功能,并提供將 Excel 轉(zhuǎn) CSV 以及 CSV 轉(zhuǎn) Excel 的內(nèi)置方法。

通過(guò) NuGet 安裝

在 Visual Studio 項(xiàng)目中運(yùn)行以下命令:

Install-Package FreeSpire.XLS

驗(yàn)證安裝是否成功

安裝完成后,可以創(chuàng)建一個(gè)簡(jiǎn)單的控制臺(tái)程序來(lái)驗(yàn)證:

using Spire.Xls;

class Program
{
    static void Main()
    {
        Workbook workbook = new Workbook();
        System.Console.WriteLine("已成功安裝。");
    }
}

如果程序運(yùn)行無(wú)報(bào)錯(cuò),說(shuō)明庫(kù)已經(jīng)可以使用,可以開始文件轉(zhuǎn)換操作。

Excel 轉(zhuǎn) CSV

將 Excel 工作表導(dǎo)出為 CSV 是最常見(jiàn)的操作,尤其在以下場(chǎng)景中:

  • 將數(shù)據(jù)提供給數(shù)據(jù)庫(kù)或 ETL 流程
  • 生成可供 Web 服務(wù)或數(shù)據(jù)分析工具使用的 CSV 文件
  • 簡(jiǎn)化文件傳輸和存儲(chǔ),減少文件體積

基礎(chǔ)轉(zhuǎn)換

下面示例展示了如何將 Excel 文件的第一個(gè)工作表轉(zhuǎn)換為 UTF-8 編碼的 CSV 文件:

using Spire.Xls;
using System.Text;

namespace ConvertExcelToCsv
{
    class Program
    {
        static void Main(string[] args)
        {
            Workbook workbook = new Workbook();
            workbook.LoadFromFile("Sample.xlsx");

            Worksheet sheet = workbook.Worksheets[0];
            sheet.SaveToFile("ExcelToCSV.csv", ",", Encoding.UTF8);

            workbook.Close();
        }
    }
}

這種方法可以保留文本、數(shù)字以及基本格式,生成的 CSV 文件可被 Excel、數(shù)據(jù)庫(kù)或任何支持 CSV 的工具打開。

自定義 CSV 輸出

有時(shí)候,你可能希望對(duì) Excel 數(shù)據(jù)導(dǎo)出的方式進(jìn)行更多控制:

  • 指定分隔符(逗號(hào)、分號(hào)、制表符等)
  • 處理特殊字符或非英文文本
  • 保留或忽略表頭
  • 控制數(shù)字和日期格式

Spire.XLS 允許你明確指定分隔符和編碼,從而避免不同地區(qū)設(shè)置或非標(biāo)準(zhǔn)字符導(dǎo)致的問(wèn)題。

CSV 轉(zhuǎn) Excel

將 CSV 導(dǎo)入 Excel 同樣簡(jiǎn)單。你可以在導(dǎo)入時(shí)自動(dòng)調(diào)整格式、自動(dòng)適應(yīng)列寬行高,并處理數(shù)字與文本沖突。

using Spire.Xls;

namespace ConvertCsvToExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            Workbook workbook = new Workbook();
            workbook.LoadFromFile(@"ExcelToCSV.csv", ",", 1, 1);

            Worksheet sheet = workbook.Worksheets[0];
            CellRange usedRange = sheet.AllocatedRange;
            usedRange.IgnoreErrorOptions = IgnoreErrorType.NumberAsText;
            usedRange.AutoFitColumns();
            usedRange.AutoFitRows();

            workbook.SaveToFile("CSVToExcel.xlsx", ExcelVersion.Version2013);
            workbook.Close();
        }
    }
}

這種方法不僅保證數(shù)據(jù)完整導(dǎo)入,同時(shí)也讓內(nèi)容在 Excel 中易于閱讀和進(jìn)一步處理。

高級(jí)場(chǎng)景:批量轉(zhuǎn)換

在實(shí)際應(yīng)用中,你可能需要自動(dòng)處理多個(gè)文件。例如,將一個(gè)文件夾內(nèi)所有 Excel 文件批量轉(zhuǎn)換為 CSV:

using Spire.Xls;
using System.IO;
using System.Text;

class BatchConvert
{
    static void Main()
    {
        string inputFolder = @"C:\InputExcels";
        string outputFolder = @"C:\OutputCSVs";

        foreach (string filePath in Directory.GetFiles(inputFolder, "*.xlsx"))
        {
            Workbook workbook = new Workbook();
            workbook.LoadFromFile(filePath);

            Worksheet sheet = workbook.Worksheets[0];
            string fileName = Path.GetFileNameWithoutExtension(filePath);

            sheet.SaveToFile(Path.Combine(outputFolder, fileName + ".csv"), ",", Encoding.UTF8);
            workbook.Close();
        }

        System.Console.WriteLine("批量轉(zhuǎn)換完成。");
    }
}

這種方法非常適合:

  • 自動(dòng)化 ETL 流程
  • 每日或每周報(bào)表批量導(dǎo)出
  • 對(duì)大規(guī)模數(shù)據(jù)集進(jìn)行分析和預(yù)處理

在批量處理時(shí),注意保持文件路徑、命名規(guī)范和內(nèi)存管理,避免處理大文件夾時(shí)出現(xiàn)性能問(wèn)題。

實(shí)用技巧與注意事項(xiàng)

雖然 Excel 與 CSV 的轉(zhuǎn)換操作看起來(lái)簡(jiǎn)單,但一些細(xì)節(jié)會(huì)影響最終結(jié)果:

  1. 編碼問(wèn)題:CSV 文件的字符編碼需要與數(shù)據(jù)匹配,否則非英文字符可能顯示異常。UTF-8 是推薦選擇,舊系統(tǒng)可能需要 UTF-16。
  2. 數(shù)字與文本的處理:Excel 在導(dǎo)入 CSV 時(shí)可能將數(shù)字識(shí)別為文本或反之。使用 ???IgnoreErrorOptions?? 可以避免數(shù)字與文本混淆,特別是公式或 ID 數(shù)據(jù)。
  3. 資源管理:每次操作完成后,請(qǐng)調(diào)用 ???Close()?? 釋放內(nèi)存,尤其在循環(huán)或批量處理場(chǎng)景下,否則可能導(dǎo)致內(nèi)存占用增加。
  4. 列寬與行高:CSV 文件不會(huì)保存 Excel 的格式。若希望回到 Excel 后內(nèi)容仍清晰可讀,使用 ???AutoFitColumns()??? 和 ??AutoFitRows()?? 調(diào)整列寬和行高。
  5. 批量處理的容錯(cuò):在處理多個(gè)文件時(shí),建議加入異常處理,例如跳過(guò)損壞文件、記錄失敗文件路徑,以保證批量任務(wù)不中斷。
  6. 分隔符選擇:在多地區(qū)環(huán)境下,默認(rèn)逗號(hào)分隔符可能會(huì)與數(shù)字小數(shù)點(diǎn)沖突,可根據(jù)需求選擇分號(hào)或制表符作為分隔符。

總結(jié)

在 C# 中操作 Excel 和 CSV 文件,其實(shí)比想象的簡(jiǎn)單。無(wú)論是單個(gè)文件轉(zhuǎn)換,還是處理整個(gè)文件夾的數(shù)據(jù),掌握基礎(chǔ)方法和一些自定義設(shè)置,就能讓數(shù)據(jù)處理更加高效。

結(jié)合基礎(chǔ)轉(zhuǎn)換、自定義選項(xiàng)和批量處理,你可以輕松完成:

  • 數(shù)據(jù)自動(dòng)化工作流
  • 報(bào)表生成與數(shù)據(jù)整理
  • 大規(guī)模數(shù)據(jù)預(yù)處理和分析

這些方法可以幫助你減少重復(fù)操作,提高準(zhǔn)確性,同時(shí)讓數(shù)據(jù)處理過(guò)程更清晰可控。

到此這篇關(guān)于C#高效實(shí)現(xiàn)Excel與CSV的互相轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)C# Excel與CSV互轉(zhuǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談C#基礎(chǔ)之類的訪問(wèn)修飾符

    淺談C#基礎(chǔ)之類的訪問(wèn)修飾符

    淺談C#基礎(chǔ)之類的訪問(wèn)修飾符,需要的朋友可以參考一下
    2013-03-03
  • C# 生成隨機(jī)數(shù)的代碼

    C# 生成隨機(jī)數(shù)的代碼

    這篇文章主要介紹了C# 生成隨機(jī)數(shù)的代碼的相關(guān)資料,非常的簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-03-03
  • c#橋接模式(bridge結(jié)構(gòu)模式)用法實(shí)例

    c#橋接模式(bridge結(jié)構(gòu)模式)用法實(shí)例

    這篇文章主要介紹了c#橋接模式(bridge結(jié)構(gòu)模式)用法,較為詳細(xì)的分析了橋接模式的原理與用法實(shí)例,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12
  • C#實(shí)現(xiàn)String字符串轉(zhuǎn)化為SQL語(yǔ)句中的In后接的參數(shù)詳解

    C#實(shí)現(xiàn)String字符串轉(zhuǎn)化為SQL語(yǔ)句中的In后接的參數(shù)詳解

    在本篇文章中小編給大家分享的是一篇關(guān)于C#實(shí)現(xiàn)String字符串轉(zhuǎn)化為SQL語(yǔ)句中的In后接的實(shí)例內(nèi)容和代碼,需要的朋友們參考下。
    2020-01-01
  • 利用C#代碼實(shí)現(xiàn)圖片旋轉(zhuǎn)360度

    利用C#代碼實(shí)現(xiàn)圖片旋轉(zhuǎn)360度

    本文介紹利用C#代碼實(shí)現(xiàn)圖片旋轉(zhuǎn)360度,具體實(shí)例代碼已附上,僅供大家參考,希望對(duì)大家有所幫助
    2016-11-11
  • c#爬蟲爬取京東的商品信息

    c#爬蟲爬取京東的商品信息

    這篇文章主要給大家介紹了關(guān)于利用c#爬蟲爬取京東商品信息的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • C#中Datetimepicker出現(xiàn)問(wèn)題的解決方法

    C#中Datetimepicker出現(xiàn)問(wèn)題的解決方法

    這篇文章主要給大家介紹了關(guān)于C#中Datetimepicker出現(xiàn)問(wèn)題的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • C#操作SQLite實(shí)現(xiàn)數(shù)據(jù)的增刪改查

    C#操作SQLite實(shí)現(xiàn)數(shù)據(jù)的增刪改查

    SQLite是一個(gè)輕量級(jí)、跨平臺(tái)的關(guān)系型數(shù)據(jù)庫(kù),在小型項(xiàng)目中,方便,易用,同時(shí)支持多種開發(fā)語(yǔ)言。本文將用C#語(yǔ)言對(duì)SQLite 的一個(gè)封裝,實(shí)現(xiàn)數(shù)據(jù)的增刪改查。需要的可以參考一下
    2022-01-01
  • C# 調(diào)用WebApi的實(shí)現(xiàn)

    C# 調(diào)用WebApi的實(shí)現(xiàn)

    這篇文章主要介紹了C# 調(diào)用WebApi的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • SuperSocket入門--Telnet服務(wù)器和客戶端請(qǐng)求處理

    SuperSocket入門--Telnet服務(wù)器和客戶端請(qǐng)求處理

    本文的控制臺(tái)項(xiàng)目是根據(jù)SuperSocket官方Telnet示例代碼進(jìn)行調(diào)試的,官方示例代碼:Telnet示例。下面跟著小編一起來(lái)看下吧
    2017-01-01

最新評(píng)論

福建省| 汶上县| 湖北省| 疏勒县| 东海县| 丰城市| 晋江市| 阿巴嘎旗| 古田县| 兴安盟| 上犹县| 左权县| 宜君县| 定襄县| 平果县| 阜平县| 合肥市| 东兰县| 卢湾区| 崇阳县| 时尚| 梁平县| 铁力市| 云和县| 恩施市| 九寨沟县| 探索| 盘山县| 怀仁县| 台湾省| 镇原县| 琼海市| 库车县| 四子王旗| 苏州市| 浮山县| 聂拉木县| 乌什县| 广元市| 彭泽县| 北辰区|