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

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);
    //關閉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中有多個單元格,對應關系如下表所示。

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

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

其打開流程,包括打開Excel程序、打開Excel文件以及打開sheet;關閉則包括關閉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)容,更多關于C#讀寫Excel的資料請關注腳本之家其它相關文章!

相關文章

  • .net中常用的正則表達式

    .net中常用的正則表達式

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

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

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

    C#解決“因為算法不同,客戶端和服務器無法通信”的問題

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

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

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

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

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

    C#用戶控件之溫度計設計

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

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

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

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

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

    dotNet中的反射用法入門教程

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

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

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

最新評論

阜平县| 三江| 沿河| 沂水县| 固阳县| 玉溪市| 海安县| 大关县| 西乌珠穆沁旗| 仪征市| 大竹县| 鄂温| 娄底市| 江孜县| 新宁县| 鹤壁市| 巴彦淖尔市| 桂平市| 甘肃省| 江油市| 广平县| 深州市| 道真| 皋兰县| 呈贡县| 阿图什市| 迭部县| 金沙县| 武定县| 全南县| 漳州市| 佛学| 孝昌县| 民县| 大渡口区| 康平县| 黄骅市| 武穴市| 江永县| 湄潭县| 射洪县|