欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
C# 操作Excel文件之COM組件方式

這一篇來(lái)寫(xiě)操作Excel文件的第二種方式,COM組件的方式,也就是使用:Microsoft.Office.Interop.Excel.dll,這個(gè)dll大家可以直接在NuGet搜索下載

先來(lái)介紹下優(yōu)缺點(diǎn):

Microsoft.Office.Interop.Excel用起來(lái)也是非常強大、非常靈活,可以直接對Excel進(jìn)行一些常用操作

缺點(diǎn)就是這個(gè)肯定是要在機器上安裝Excel的,而且最后的資源釋放得處理好,否則會(huì )一直占用Excel進(jìn)程


實(shí)現功能:

    • 使用Microsoft.Office.Interop.Excel.dll將Excel文件中的數據顯示到dataGridView

    • 使用Microsoft.Office.Interop.Excel.dll對Excel文件進(jìn)行數據修改

開(kāi)發(fā)環(huán)境:

開(kāi)發(fā)工具:Visual Studio 2013

.NET Framework版本:4.5

實(shí)現代碼:

  首先需要導入以下命名空間:

using Excel = Microsoft.Office.Interop.Excel;using System.IO;
 //實(shí)例化一個(gè)datatable用來(lái)存儲數據 DataTable dt = new DataTable();
//指定excel所在路徑 string excelPath = "d:\\1.xlsx"; //可以用來(lái)表示type中的缺省值 //object missing = System.Reflection.Missing.Value; //打開(kāi)excel的時(shí)候可以指定數據類(lèi)型 //如:excel.Application.Workbooks.Open(excelPath,missing,typeof(decimal),typeof(int));
//打開(kāi)excel文件 Excel.Application excel = new Excel.Application(); Excel.Workbook workbook = excel.Application.Workbooks.Open(excelPath); //獲取所有sheet頁(yè) Excel.Sheets sheets = workbook.Worksheets; //取第一個(gè)sheet Excel.Worksheet sheet = sheets[1]; //獲取excel的列數 int columnCount = sheet.UsedRange.Columns.Count; //獲取excel的行數 int rowCount = sheet.UsedRange.Rows.Count;
#region 區域讀取,效率相對較高 //將第一行作為表頭 Excel.Range rangeColumn = sheet.get_Range((Excel.Range)sheet.Cells[1, 1], (Excel.Range)sheet.Cells[1, columnCount]); object[,] arrColumn = rangeColumn.Value as object[,]; foreach (object obj in arrColumn) { string value = Convert.ToString(obj); dt.Columns.Add(value); }
//將所有數據全部讀取出來(lái)。然后轉化為二維數組。 //數據量很多時(shí)可以考慮分批/多線(xiàn)程讀取 Excel.Range rangeRow = sheet.get_Range((Excel.Range)sheet.Cells[2, 1], (Excel.Range)sheet.Cells[rowCount, columnCount]); object[,] arrRow = rangeRow.Value as object[,]; for (int i = 1; i <= arrRow.GetLength(0); i++) { DataRow dr = dt.NewRow(); for (int c = 1; c <= dt.Columns.Count; c++) { string value = Convert.ToString(arrRow[i, c]); dr[c - 1] = value; } dt.Rows.Add(dr); }
#endregion
#region 單元格逐個(gè)讀取,效率很低 /* //將第一行作為表頭 for (int j = 1; j <= columnCount; j++) { string value = Convert.ToString(((Excel.Range)sheet.Cells[1, j]).Value); dt.Columns.Add(value);
} for (int i = 2; i <= rowCount; i++) { DataRow dr = dt.NewRow(); for (int j = 1; j <= columnCount; j++) { string value = Convert.ToString(((Excel.Range)sheet.Cells[i, j]).Value); for (int c = 0; c < dt.Columns.Count; c++) { dr[j - 1] = value; } } dt.Rows.Add(dr); } */
#endregion //釋放資源 workbook.Close(); excel.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(excel); GC.Collect(); //若有必要,可以使用Process殺進(jìn)程進(jìn)行資源釋放 //顯示到頁(yè)面 dataGridView1.DataSource = dt;

我上面寫(xiě)了兩種讀取方式,可以注意下,酌情使用。

如果是要修改數據的話(huà),取到要修改的sheet后,直接指定到單元格進(jìn)行賦值即可,代碼如下:

//修改第二行第二列的數據為Hellosheet.Cells[2, 2] = "Hello";//保存workbook.Save(); //釋放資源 workbook.Close(); excel.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(excel); GC.Collect(); //若有必要,可以使用Process殺進(jìn)程進(jìn)行資源釋放

個(gè)人認為,此方法雖然很強大,但現在使用的應該不多,大部分會(huì )出現在一些老項目中,現在大多都會(huì )選擇使用NPOI的方式去操作Excel,更方便,更簡(jiǎn)單,更強大。下一篇我們介紹下使用NPOI的操作方式

由簡(jiǎn)入繁,拿來(lái)即用

后續精彩,持續關(guān)注

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
自學(xué)資料(Excel VBA)[收集整理15]
導出Excel文件(項目中會(huì )遇到很多將一些數據導出Excel或者et)
Aspose.Cells使用總結大全
C#讀取Excel幾種方法的體會(huì )(2)
我認識的EXCEL、宏、VBA
C#(com組件)操作Excel讀寫(xiě)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久