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

C#讀寫Excel的流程步驟

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

環(huán)境準(zhǔn)備

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

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

using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;
using System.Runtime.InteropServices;//導(dǎo)入dll

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

Excel寫入

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

  • 創(chuàng)建一個(gè)Excel程序app
  • 在app中創(chuàng)建一個(gè)xlsx文件 wbk
  • 選中wbk中的第一個(gè)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這個(gè)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];
// 獲取當(dāng)前工作路徑
string path = System.Environment.CurrentDirectory;
// 輸出文件的路徑
path = Path.Combine(path, "test.xlsx");
dataToExcel(data, path);
Console.WriteLine($"輸出到{path}");

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

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

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

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

Excel讀取

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

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;**時(shí),Excel軟件會(huì)被打開。

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

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

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

相關(guān)文章

最新評(píng)論