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

C#讀寫Excel的流程步驟

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

Excel寫入

為了重點(diǎn)突出重點(diǎn),下面爭取用最短的代碼,寫一個將多維數(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];
// 獲取當(dāng)前工作路徑
string path = System.Environment.CurrentDirectory;
// 輸出文件的路徑
path = Path.Combine(path, "test.xlsx");
dataToExcel(data, path);
Console.WriteLine($"輸出到{path}");

這里需要建立起對Excel中數(shù)據(jù)組織的一個概念,首先是Excel軟件,一個軟件可以打開多個xlsx文件,每個文件中對應(yīng)多個sheet,每個sheet中有多個單元格,對應(yīng)關(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ū)域,其對應(yīng)的行數(shù)和列數(shù)就比較有代表性,根據(jù)這兩個值進(jìn)行循環(huán),就可以把剛剛寫入的數(shù)據(jù)打印出來了。

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

相關(guān)文章

  • .net中常用的正則表達(dá)式

    .net中常用的正則表達(dá)式

    這篇文章介紹了.net中常用的正則表達(dá)式,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 解決Entity Framework中自增主鍵的問題

    解決Entity Framework中自增主鍵的問題

    這篇文章主要介紹了解決Entity Framework中自增主鍵的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • C#解決“因?yàn)樗惴ú煌?,客戶端和服?wù)器無法通信”的問題

    C#解決“因?yàn)樗惴ú煌?,客戶端和服?wù)器無法通信”的問題

    實(shí)現(xiàn)微信退款功能,我們需要在微信支付商戶后臺申請安全證書,并調(diào)用退款A(yù)PI URL,在調(diào)試過程中為增添返回調(diào)試信息屬性,調(diào)試一切正常,但再次覆蓋的時候,調(diào)用顯示為 “ 因?yàn)樗惴ú煌?客戶端和服務(wù)器無法通信,” ,本文介紹了C#解決因?yàn)樗惴ú煌?客戶端和服務(wù)器無法通信的問題
    2024-12-12
  • C#中觀察者模式的3種實(shí)現(xiàn)方式

    C#中觀察者模式的3種實(shí)現(xiàn)方式

    這篇文章主要介紹了C#中觀察者模式的3種實(shí)現(xiàn)方式,本文講解了利用.net的Event模型來實(shí)現(xiàn)、利用.net中IObservable<out T>和IObserver<in T>實(shí)現(xiàn)觀察者模式、Action函數(shù)式方案等3種方法,需要的朋友可以參考下
    2015-03-03
  • C#中DateTime的格式符的實(shí)現(xiàn)示例

    C#中DateTime的格式符的實(shí)現(xiàn)示例

    本文介紹了C#中DateTime格式符的使用方法,分為預(yù)定義格式和自定義格式兩類,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-12-12
  • C#用戶控件之溫度計(jì)設(shè)計(jì)

    C#用戶控件之溫度計(jì)設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了C#用戶控件之溫度計(jì)的設(shè)計(jì)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • C#常用數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組Array

    C#常用數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組Array

    這篇文章介紹了C#常用數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組Array,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#巧用DateTime預(yù)設(shè)可選的日期范圍(如本年度、本季度、本月等)

    C#巧用DateTime預(yù)設(shè)可選的日期范圍(如本年度、本季度、本月等)

    這篇文章主要介紹了C#巧用DateTime預(yù)設(shè)可選的日期范圍,如本年度、本季度、本月等,感興趣的小伙伴們可以參考一下
    2016-04-04
  • dotNet中的反射用法入門教程

    dotNet中的反射用法入門教程

    這篇文章主要介紹了dotNet中的反射用法,較為詳細(xì)的分析了.Net中關(guān)于反射的概念,使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2016-02-02
  • 使用C#在注冊表中保存信息的例子

    使用C#在注冊表中保存信息的例子

    最近做的項(xiàng)目需要在注冊表中記錄一些用戶設(shè)置,方便在程序下次啟動時讀取設(shè)置,應(yīng)用上次用戶保存的設(shè)置,挺簡單的
    2014-04-04

最新評論

辽阳县| 云林县| 海城市| 诸城市| 区。| 东阳市| 磐石市| 兴海县| 贡觉县| 贺州市| 驻马店市| 宁城县| 浦北县| 敦化市| 巴彦淖尔市| 南昌县| 曲周县| 晋城| 六安市| 横峰县| 遂平县| 肥城市| 垦利县| 民丰县| 府谷县| 濮阳市| 南澳县| 弥勒县| 富顺县| 政和县| 思茅市| 龙胜| 互助| 临城县| 依兰县| 金川县| 永川市| 合川市| 互助| 沙河市| 绥棱县|