C#使用NPOI庫(kù)讀寫(xiě)Excel文件
本文實(shí)例為大家分享了C#使用NPOI庫(kù)讀寫(xiě)Excel文件的具體代碼,供大家參考,具體內(nèi)容如下
第一步添加程引用: 右鍵項(xiàng)目工程 — 管理 NuGet程序包 — 搜索 NOPI — 安裝
對(duì)文件Excel進(jìn)行操作
讀取excel文件
private IWorkbook wk; ? private FileStream fs;? private void OpenExcel(string path) ? ? ? ? { ? ? ? ? ? ? StringBuilder sbr = new StringBuilder(); ? ? ? ? ? ? try ? ? ? ? ? ? { ? ? ? ? ? ? ? ? using (fs = File.OpenRead(path)) ? //打開(kāi)myxls.xls文件 ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? wk = new XSSFWorkbook(fs); ? //把xls文件中的數(shù)據(jù)寫(xiě)入wk中 ? ? ? ? ? ? ? ? ? ? ? for (int i = 0; i < wk.NumberOfSheets; i++) ?//NumberOfSheets是myxls.xls中總共的表數(shù) ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ISheet sheet = wk.GetSheetAt(i); ? //讀取當(dāng)前表數(shù)據(jù) ? ? ? ? ? ? ? ? ? ? ? ? ? for (int j = 0; j <= sheet.LastRowNum; j++) ?//LastRowNum 是當(dāng)前表的總行數(shù) ? ? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? IRow row = sheet.GetRow(j); ?//讀取當(dāng)前行數(shù)據(jù) ? ? ? ? ? ? ? ? ? ? ? ? ? ? if (row != null) ? ? ? ? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? sbr.Append("-------------------------------------\r\n"); //讀取行與行之間的提示界限 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? for (int k = 0; k <= row.LastCellNum; k++) ?//LastCellNum 是當(dāng)前行的總列數(shù) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ICell cell = row.GetCell(k); ?//當(dāng)前表格 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if (cell != null) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? sbr.Append(cell.ToString()); ? //獲取表格中的數(shù)據(jù)并轉(zhuǎn)換為字符串類(lèi)型 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? ? ? catch (Exception) ? ? ? ? ? ? { ? ? ? ? ? ? ? ? MessageBox.Show("文件被其他應(yīng)用打開(kāi),請(qǐng)關(guān)閉對(duì)該文件的引用?。?!"); ? ? ? ? ? ? } ? ? ? ? }
修改 寫(xiě)入
private void SetCellValue(ISheet sheet,int row,int column,String value) ?{ ? ? ? ? ? ? ICell tmpCell = sheet.GetRow(row).GetCell(column); ? ? ? ? ? ? tmpCell.SetCellValue(value); }
保存
private void SaveExcel(String path) { ? ? ? ? ? ? //把編輯過(guò)后的工作薄重新保存為excel文件 ? ? ? ? ? ? FileStream fs2 = File.Create(path); ? ? ? ? ? ? wk.Write(fs2); ? ? ? ? ? ? fs2.Close(); ? ? ? ? ? ? MessageBox.Show("文件修改成功!??!"); ?}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#?OpenCvSharp?顏色反轉(zhuǎn)實(shí)例詳解
OpenCVSharp是OpenCV的.NET?wrapper,它比Emgucv更接近于原始的OpenCV,并且有很多的樣例參考,其采用LGPL發(fā)行,對(duì)商業(yè)應(yīng)用友好(基本上相當(dāng)于BSD),這篇文章主要介紹了C#?OpenCvSharp?顏色反轉(zhuǎn)的知識(shí),需要的朋友可以參考下2024-02-02Qt程序中調(diào)用C#編寫(xiě)的dll(推薦)
這篇文章主要介紹了Qt程序中調(diào)用C#編寫(xiě)的dll,本文圖文并茂給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04c# winform讀取xml文件創(chuàng)建菜單的代碼
動(dòng)態(tài)創(chuàng)建菜單使得程序靈活性大大增加,本文根據(jù)讀取xml文件中的配置菜單項(xiàng)來(lái)動(dòng)態(tài)創(chuàng)建菜單,代碼如下2013-09-09C#使用Data?Annotations進(jìn)行手動(dòng)數(shù)據(jù)驗(yàn)證
這篇文章介紹了C#使用Data?Annotations進(jìn)行手動(dòng)數(shù)據(jù)驗(yàn)證的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06c#調(diào)用存儲(chǔ)過(guò)程實(shí)現(xiàn)登錄界面詳解
2013-03-03C#窗體-數(shù)據(jù)庫(kù)連接及登錄功能的實(shí)現(xiàn)案例
這篇文章主要介紹了C#窗體-數(shù)據(jù)庫(kù)連接及登錄功能的實(shí)現(xiàn)案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12C# winform實(shí)現(xiàn)右下角彈出窗口結(jié)果的方法
這篇文章主要介紹了C# winform實(shí)現(xiàn)右下角彈出窗口結(jié)果的方法,結(jié)合實(shí)例形式分析了C#窗口操作的相關(guān)技巧,需要的朋友可以參考下2017-06-06