亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#實現(xiàn)Excel與DataTable的數(shù)據(jù)互轉的代碼示例

 更新時間:2024年11月11日 10:12:46   作者:Eiceblue  
在.NET框架中,使用C#進行Excel數(shù)據(jù)與DataTable之間的轉換是數(shù)據(jù)分析、報表生成、數(shù)據(jù)遷移等操作中的常見需求,這一過程涉及到將Excel文件中的數(shù)據(jù)讀取并加載至DataTable中,本文將介紹如何通過C#語言實現(xiàn)Excel數(shù)據(jù)與DataTable之間的高效轉換,需要的朋友可以參考下

引言

在.NET框架中,使用C#進行Excel數(shù)據(jù)與DataTable之間的轉換是數(shù)據(jù)分析、報表生成、數(shù)據(jù)遷移等操作中的常見需求。這一過程涉及到將Excel文件中的數(shù)據(jù)讀取并加載至DataTable中,以便于利用.NET提供的豐富數(shù)據(jù)處理功能進行操作,同時也包括將DataTable中的數(shù)據(jù)導出至Excel文件,以實現(xiàn)數(shù)據(jù)的可視化或共享。本文將介紹如何通過C#語言實現(xiàn)Excel數(shù)據(jù)與DataTable之間的高效轉換。

本文使用的方法需要用到免費的Free Spire.XLS for .NET,NuGet:PM> Install-Package FreeSpire.XLS

將數(shù)據(jù)從DataTable導出到Excel文件

我們可以使用Worksheet.AllocatedRange屬性獲取Excel工作表中的已使用的單元格范圍,然后根據(jù)行數(shù)和列數(shù),讀取數(shù)據(jù)并添加到DataTable對象中。以下是操作步驟:

  1. 導入所需模塊。
  2. 創(chuàng)建Workbook對象,使用Workbook.LoadFromFile()方法載入Excel文件。
  3. 使用Workbook.Worksheets[]屬性獲取需要的工作表。
  4. 創(chuàng)建DataTable實例。
  5. 遍歷工作表第一行數(shù)據(jù),使用Worksheet.AllocatedRange[].Value屬性獲取其中單元格的值,最后使用DataTable.Columns.Add()方法將其導入為DataTable的列名。
  6. 遍歷剩余各行,使用同樣的方法獲取單元格數(shù)據(jù),并寫入到DataTable各行中。
  7. 輸出結果。

代碼示例

using Spire.Xls;
using System.Data;

namespace ExcelToDataTable
{
    class Program
    {
        static void Main(string[] args)
        {
            // 創(chuàng)建Workbook的實例
            Workbook wb = new Workbook();

            // 載入Excel文件
            wb.LoadFromFile("Sample.xlsx");

            // 獲取一個工作表
            Worksheet sheet = wb.Worksheets[0];

            // 創(chuàng)建一個DataTable實例
            DataTable dataTable = new DataTable();

            // 將第一行作為列名添加到DataTable
            for (int col = 1; col <= sheet.AllocatedRange.ColumnCount; col++)
            {
                if (sheet.AllocatedRange[1, col].Value != null)
                {
                    dataTable.Columns.Add(sheet.AllocatedRange[1, col].Value);
                }
            }

            // 遍歷其余行并將數(shù)據(jù)添加到DataTable
            for (int row = 2; row <= sheet.AllocatedRange.RowCount; row++)
            {
                DataRow dataRow = dataTable.NewRow();
                for (int col = 1; col <= sheet.AllocatedRange.ColumnCount; col++)
                {
                    if (sheet.AllocatedRange[row, col].Value != null)
                    {
                        dataRow[col - 1] = sheet.AllocatedRange[row, col].Value;
                    }
                }
                dataTable.Rows.Add(dataRow);
            }

            // 輸出列名
            foreach (DataColumn column in dataTable.Columns)
            {
                Console.Write(column.ColumnName + "\t");
            }
            Console.WriteLine();

            // 輸出數(shù)據(jù)行
            foreach (DataRow row in dataTable.Rows)
            {
                foreach (var item in row.ItemArray)
                {
                    Console.Write(item + "\t");
                }
                Console.WriteLine();
            }
        }
    }
}

結果

將數(shù)據(jù)從Excel表格導入DataTable

Worksheet.Range[].Value屬性可以幫助我們直接向Excel工作表中的指定單元格寫入數(shù)據(jù)。我們可以將從其他地方獲取到的DataTable對象中的數(shù)據(jù)搭配此屬性寫入到Excel文件中。以下是操作步驟:

  1. 導入所需模塊。
  2. 定義數(shù)據(jù)并使用數(shù)據(jù)構建DataTable對象。
  3. 創(chuàng)建Workbook實例。
  4. 使用Workbook.Worksheets.Clear()方法清除默認工作表,然后使用Workbook.Worksheets.Add()方法新建工作表。
  5. 遍歷DataTable列,使用DataTable.Columns[].ColumnName屬性獲取列名,最后使用Worksheet.Range[].Value屬性將列名寫入工作表。
  6. 遍歷DataTable數(shù)據(jù)行和列,使用DataTable.Rows[][].ToString()方法獲取數(shù)據(jù)為字符串,最后使用Worksheet.Range[].Value屬性將數(shù)據(jù)寫入工作表。
  7. 使用Workbook.SaveToFile()方法保存Excel文件。
  8. 釋放資源。

代碼示例

using Spire.Xls;
using System.Data;

namespace DataTableToExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            // 定義數(shù)據(jù)列表并創(chuàng)建一個DataTable實例
            string[,] data = new string[,]
            {
                { "Product", "Quantity", "SalesAmount" },
                { "Product A", "100", "5000.0" },
                { "Product B", "150", "7500.0" },
                { "Product C", "200", "10000.0" },
                { "Product D", "120", "6000.0" },
                { "Product E", "180", "9000.0" }
            };
            DataTable dataTable = new DataTable();
            // 獲取列數(shù)
            int columnCount = data.GetLength(1);
            // 添加列
            for (int col = 0; col < columnCount; col++)
            {
                dataTable.Columns.Add(data[0, col]);
            }
            // 添加數(shù)據(jù)行
            for (int row = 1; row < data.GetLength(0); row++)
            {
                DataRow dataRow = dataTable.NewRow();
                for (int col = 0; col < columnCount; col++)
                {
                    dataRow[col] = data[row, col];
                }
                dataTable.Rows.Add(dataRow);
            }

            // 創(chuàng)建Workbook的實例
            Workbook workbook = new Workbook();

            // 清除默認工作表并添加一個工作表
            workbook.Worksheets.Clear();
            Worksheet sheet = workbook.Worksheets.Add("SalesReport");

            // 寫入列名
            for (int col = 0; col < columnCount; col++)
            {
                sheet.Range[1, col + 1].Value = dataTable.Columns[col].ColumnName;
            }

            // 寫入數(shù)據(jù)行
            for (int row = 0; row < dataTable.Rows.Count; row++)
            {
                for (int col = 0; col < columnCount; col++)
                {
                    sheet.Range[row + 2, col + 1].Value = dataTable.Rows[row][col].ToString();
                }
            }

            // 保存到文件
            workbook.SaveToFile("output/DataTableToExcel.xlsx", FileFormat.Version2016);
            workbook.Dispose();
        }
    }
}

結果

本文演示如何使用C#代碼在.NET程序中導入Excel文件數(shù)據(jù)到DataTable以及到處DataTable數(shù)據(jù)到Excel文件。

到此這篇關于C#實現(xiàn)Excel與DataTable的數(shù)據(jù)互轉的代碼示例的文章就介紹到這了,更多相關C# Excel與DataTable數(shù)據(jù)互轉內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C#中字符串分割的多種方式

    C#中字符串分割的多種方式

    在C#編程語言中,字符串處理是日常開發(fā)中不可或缺的一部分,字符串分割是處理文本數(shù)據(jù)時常用的操作,它允許我們將一個長字符串分解成多個子字符串,本文給大家介紹了C#中字符串分割的多種方式,需要的朋友可以參考下
    2025-01-01
  • C#使用Region對圖形區(qū)域構造和填充的方法

    C#使用Region對圖形區(qū)域構造和填充的方法

    這篇文章主要介紹了C#使用Region對圖形區(qū)域構造和填充的方法,實例分析了Region類圖形操作的相關技巧,需要的朋友可以參考下
    2015-06-06
  • 一文帶你吃透C#中面向對象的相關知識

    一文帶你吃透C#中面向對象的相關知識

    這篇文章主要為大家詳細介紹了C#中面向對象的相關知識,文中的示例代碼講解詳細,對我們學習C#有一定的幫助,需要的小伙伴可以參考一下
    2023-02-02
  • C#程序如何調(diào)用C++?dll詳細教程

    C#程序如何調(diào)用C++?dll詳細教程

    C#和C++形成的DLL有一層天然的屏障,并不能簡單地互相調(diào)用,想要C#工程調(diào)用c++dll,需要先在其外部包裹上clr?c++的外殼,本篇文章給大家分享了C#調(diào)用C++?dll的詳細步驟和方法,有興趣的朋友可以參考學習下
    2018-07-07
  • WPF利用DrawingContext實現(xiàn)繪制溫度計

    WPF利用DrawingContext實現(xiàn)繪制溫度計

    這篇文章主要為大家詳細介紹了如何利用WPF和DrawingContext實現(xiàn)繪制溫度計,文中的示例代碼講解詳細,對我們學習或工作有一定幫助,感興趣的小伙伴可以了解一下
    2022-09-09
  • C#引用類型和值類型的適用場合和區(qū)別

    C#引用類型和值類型的適用場合和區(qū)別

    今天小編就為大家分享一篇關于C#引用類型和值類型的適用場合和區(qū)別,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • C#實現(xiàn)Json文件讀寫的方法代碼

    C#實現(xiàn)Json文件讀寫的方法代碼

    這篇文章主要給大家介紹了關于C#實現(xiàn)Json文件讀寫的相關資料,C# 讀取JSON文件并讀取某一個關鍵字的值可以使用Newtonsoft.Json庫,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • C#獲取文件相關信息的方法

    C#獲取文件相關信息的方法

    這篇文章主要介紹了C#獲取文件相關信息的方法,涉及C#中FileInfo類的相關使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • c#多線程之間的排他鎖的實現(xiàn)

    c#多線程之間的排他鎖的實現(xiàn)

    我們很多時候會碰到這樣的問題,使用多線程刷一個表的數(shù)據(jù)時需要多個線程不能重復提取數(shù)據(jù),那么這個時候就需要使用到線程的排他鎖了,本文就詳細的介紹一下
    2021-08-08
  • C#實現(xiàn)人臉識別超簡單方法舉例

    C#實現(xiàn)人臉識別超簡單方法舉例

    這篇文章主要給大家介紹了關于C#實現(xiàn)人臉識別的相關資料,文中講解了在C#中使用EmguCV庫進行人臉識別的簡單示例,包括安裝EmguCV庫、準備訓練數(shù)據(jù)、編寫代碼和運行程序,需要的朋友可以參考下
    2024-11-11

最新評論