欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#讀寫Excel的流程步驟

 更新時間:2023年12月28日 10:51:09   作者:微小冷  
這篇文章主要介紹了詳解C#讀寫Excel的流程步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或工作有一定的參考學習價值,需要的朋友們下面隨著小編來一起來學習吧

環(huán)境準備

首先,右鍵解決方案的依賴項->添加項目引用,搜索Excel,選中Microsoft Excel 16.0 Object Library->點擊確定。

然后在源文件中添加命名空間

using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;
using System.Runtime.InteropServices;//導入dll

本教程使用了.Net6.0的頂層語句,所以不需要再導入諸如Core之類的,直接開擼代碼。下面通過C#實現(xiàn)對Excel的讀寫

Excel寫入

為了重點突出重點,下面爭取用最短的代碼,寫一個將多維數(shù)組寫入Excel并保存的函數(shù),其基本流程如下

  • 創(chuàng)建一個Excel程序app
  • 在app中創(chuàng)建一個xlsx文件 wbk
  • 選中wbk中的第一個sheet
  • 激活whs

然后就可以具體讀寫Excel文件了。

void dataToExcel(double[,] data, string outName)
{
    Excel.Application app = new Excel.Application();
    Excel._Workbook wbk = app.Workbooks.Add(true);
    Excel._Worksheet whs = wbk.Sheets[1];
    //激活whs
    whs.Activate();

    //將二維數(shù)組中的數(shù)據(jù)寫入whs這個sheet
    for (int i = 0; i < data.GetLength(0); i++)
        for (int j = 0; j < data.GetLength(1); j++)
            whs.Cells[i + 1, j + 1] = data[i, j].ToString();

    //將wbk另存為outName
    wbk.SaveAs(outName);
    //關(guān)閉wbk
    wbk.Close();
    //退出Excel程序
    app.Quit();
}

double[,] data = new double[5, 5];
// 獲取當前工作路徑
string path = System.Environment.CurrentDirectory;
// 輸出文件的路徑
path = Path.Combine(path, "test.xlsx");
dataToExcel(data, path);
Console.WriteLine($"輸出到{path}");

這里需要建立起對Excel中數(shù)據(jù)組織的一個概念,首先是Excel軟件,一個軟件可以打開多個xlsx文件,每個文件中對應多個sheet,每個sheet中有多個單元格,對應關(guān)系如下表所示。

ExcelExcel.exetest.xlsxsheet1A1
C#appwbkwhswhs.Cells[1,1]

而通過這樣一個簡單的例程,也就理解了C#操作Excel的基本流程:打開->操作->關(guān)閉。

其打開流程,包括打開Excel程序、打開Excel文件以及打開sheet;關(guān)閉則包括關(guān)閉Excel文件和Excel程序。

Excel讀取

讀取與寫入的流程相似,但寫入時需要至少有一個Excel文件,剛好剛剛創(chuàng)建了一個

void readExcel(string inName)
{
    var app = new Excel.Application();
    var wbk = app.Workbooks.Add(inName);
    //app.Visible = true;
    
    var sh = wbk.Sheets[1];
    sh.Activate();
    Console.WriteLine("您打開了" + sh.Name);
    Console.WriteLine($"本sheet共有{sh.Rows.Count}行,{sh.Columns.Count}列");

    var usedRange = sh.UsedRange.CurrentRegion;
    for (int i = 0; i < usedRange.Rows.Count; i++)
    {
        for (int j = 0; j < usedRange.Columns.Count; j++)
            Console.Write($"{sh.Cells[i + 1, j + 1].Text} ");
        Console.Write("\n");
    }
    wbk.Close();
    app.Quit();
}

string path = System.Environment.CurrentDirectory;
path = Path.Combine(path, "test.xlsx");
readExcel(path);

命令行中輸出結(jié)果為

您打開了Sheet1
本sheet共有1048576行,16384列
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

其中,**app.Visible = true;**時,Excel軟件會被打開。

sh.Rows.Count, sh.Columns.Count分別表示總行數(shù)和總列數(shù),一般就是最大行和最大列。

而sh.UsedRange.CurrentRegion表示已寫入的區(qū)域,其對應的行數(shù)和列數(shù)就比較有代表性,根據(jù)這兩個值進行循環(huán),就可以把剛剛寫入的數(shù)據(jù)打印出來了。

以上就是C#讀寫Excel的流程步驟的詳細內(nèi)容,更多關(guān)于C#讀寫Excel的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論