日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#NPOI操作Excel

發布時間:2023/12/8 C# 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#NPOI操作Excel 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C#NPOI

  • 一、NPOI的引用
  • 二、操作Excel
    • 1.創建新的Excel工作簿
    • 2.讀取現有的Excel工作簿
    • 3.操作sheet工作表
    • 4.操作workbook工作簿
    • 5.跨workbook工作簿復制sheet工作表

編輯器:Visual Studio
語言:C#

一、NPOI的引用

1.根據Visual Studio版本安裝NuGet.Tools
網址:https://www.nuget.org/downloads
2.工具→NuGet包管理器→程序包管理器控制臺


3.輸入"Install-Package NPOI",回車


4.此時會發現項目下的“引用”多了NPOI相關引用

二、操作Excel

1.創建新的Excel工作簿

IWorkbook workbook = new XSSFWorkbook(); ISheet worksheet = workbook.CreateSheet("工作表名稱");

說明:
XSSFWorkbook操作擴展名為“.xlsx”的工作簿;
HSSFWorkbook操作擴展名為“.xls”的工作簿;
可使用IWorkbook統一定義;
如果需要多次創建workbook、worksheet等變量,可定義為公共變量,不用多次定義。

2.讀取現有的Excel工作簿

獲取Excel工作簿

FileStream fs; fs = File.Open(path);//path:讀取文件的路徑 if (Path.GetExtension(strPath) == ".xls") { workbook = new HSSFWorkbook(fs); } else { workbook = new XSSFWorkbook(fs); }

獲取sheet工作表

worksheet = workbook.GetSheetAt(0);//0即為工作簿中的第一張工作表

3.操作sheet工作表

在新工作表中插入值,首先需要創建第一行,然后創建單元格并賦值

IRow row = worksheet.CreatRow(0);//創建行 row.CreateCell(0).SetCellValue("行1列1的單元格的值"); //第二行代碼和下面兩行代碼效果相同 //ICell cell = row.CreateCell(0); //cell.SetCellValue("行1列1的單元格的值");

獲取工作表最后一行

row = worksheet.GetRow(worksheet.LastRowNum); //worksheet.LastRowNum指最后一行的索引

獲取行的最后一個單元格

ICell cell = row.GetCell(row.LastCellNum); //row.LastCellNum指此行最后一個單元格的索引

設置單元格格式:居中(可以此推導其他屬性使用)

ICellStyle cellstyle = workbook.CreateCellStyle(); //水平居中 cellstyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; //垂直居中 cellstyle.VerticalAlignment = VerticalAlignment.Center; //自動換行 cellstyle.WrapText = true; //把定義好的cellstyle賦值給單元格 row.GetCell(0).CellStyle = cellstyle;

設置列寬:worksheet.SetColumnWidth的第一個參數是要設置的列索引,第二個參數是要設置的寬度(若設置為24個字符寬度,則需25624;若設置為1個字符寬度,則需2561)

for (int i = 0; i < num; i++) { worksheet.SetColumnWidth(i, 256 * 24); }

4.操作workbook工作簿

若sheet工作表個數不為1,但是想要只保留第一個工作表

if (workbook.NumberOfSheets != 1) { for (int i = workbook.NumberOfSheets - 1; i > 0; i--) { workbook.RemoveSheetAt(i); } }

修改sheet工作表名字

workbook.SetSheetName(a, "名字");//a:sheet索引

5.跨workbook工作簿復制sheet工作表

//復制合并的單元格 public static void MergerRegion(ISheet fromSheet, ISheet toSheet) {int sheetMergerCount = fromSheet.NumMergedRegions;for (int i = 0; i < sheetMergerCount; i++) { toSheet.AddMergedRegion(fromSheet.GetMergedRegion(i)); } } //復制sheet public static void MyCopySheet(IWorkbook fromWorkbook, IWorkbook toWorkbook, ISheet fromSheet, ISheet toSheet) {MergerRegion(fromSheet, toSheet);//合并的單元格IRow fromRow, toRow;ICellStyle fromCellStyle, toCellStyle;CellType fromCellType;int Column_Num = -1;for (int i = 0; i <= fromSheet.LastRowNum; i++){if (fromSheet.GetRow(i) != null){fromRow = fromSheet.GetRow(i);toRow = toSheet.CreateRow(i);for (int j = 0; j <= fromRow.LastCellNum; j++){if (fromRow.GetCell(j) != null){#region 內容fromCellType = fromRow.GetCell(j).CellType;toRow.CreateCell(j).SetCellType(fromRow.GetCell(j).CellType);if (fromCellType == CellType.Numeric) { toRow.GetCell(j).SetCellValue(fromRow.GetCell(j).NumericCellValue); }switch (fromCellType){case CellType.Boolean: toRow.GetCell(j).SetCellValue(fromRow.GetCell(j).BooleanCellValue); break;case CellType.Numeric: if (HSSFDateUtil.IsCellDateFormatted(fromRow.GetCell(j))){ toRow.GetCell(j).SetCellValue(fromRow.GetCell(j).DateCellValue); }else { toRow.GetCell(j).SetCellValue(fromRow.GetCell(j).NumericCellValue); }break;case CellType.String: toRow.GetCell(j).SetCellValue(fromRow.GetCell(j).RichStringCellValue); break;case CellType.Formula: toRow.GetCell(j).SetCellValue(fromRow.GetCell(j).CellFormula); break;case CellType.Error: toRow.GetCell(j).SetCellValue(fromRow.GetCell(j).ErrorCellValue); break;}#endregion#region 復制單元格格式fromCellStyle = fromRow.GetCell(j).CellStyle;toCellStyle = toWorkbook.CreateCellStyle();if (fromCellStyle != null){toCellStyle.CloneStyleFrom(fromCellStyle); toRow.GetCell(j).CellStyle = toCellStyle;}#endregion}}if (fromRow.LastCellNum > Column_Num) { Column_Num = fromRow.LastCellNum; }}}for (int i = 0; i < Column_Num; i++){toSheet.SetColumnWidth(i, fromSheet.GetColumnWidth(i));//列寬} }

總結

以上是生活随笔為你收集整理的C#NPOI操作Excel的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产你懂| 熊猫电影yy8y全部免费观看 | 中文字幕一区二区av | 中国一区二区视频 | 狠狠爱网站| 狠狠干in| 亚洲福利视频一区二区三区 | 国产精品日韩欧美一区二区三区 | 97超碰中文字幕 | 中文字幕电影av | 野花国产精品入口 | 国产精品区一区二区三 | 91成人在线免费 | 日日麻批| av优选在线观看 | 深夜福利视频导航 | 一区在线播放 | 国产亚洲一区二区三区四区 | 狠狠躁18三区二区一区传媒剧情 | 在线爱情大片免费观看大全 | 欧美在线播放视频 | 怡红院成人在线 | 男女在线观看视频 | 久久亚洲综合国产精品99麻豆精品福利 | 激情视频免费观看 | 亚洲av无码久久精品狠狠爱浪潮 | 韩国毛片视频 | 九九视频国产 | 懂色av一区二区 | 四虎影库永久在线 | 国产性生活一级片 | 亚洲三级中文字幕 | 国产第8页 | 国产免费黄色大片 | 欧美男女啪啪 | 亚洲美女性视频 | 黄色欧美在线观看 | 手机看片91 | 久青草影视 | 美女诱惑一区 | 最新自拍偷拍 | 亚洲精品国产成人久久av盗摄 | 超碰在线免费97 | 成人小视频在线观看 | 美国黄色片网站 | 91av爱爱 | 欧洲午夜视频 | 国产视频精品久久 | 影音先锋日韩资源 | 成人免费视频久久 | 男人操女人逼逼视频 | 三级av网站| 麻豆tube | 以女性视角写的高h爽文 | 真实新婚偷拍xxxxx | 一本加勒比波多野结衣 | 日本久久一级片 | 国产吃瓜在线 | 久久亚洲无码视频 | 精品久久国产字幕高潮 | 国产福利一区二区三区 | 亚洲av无码一区东京热久久 | 天堂久久一区 | 特级西西人体444www | 黑人干亚洲女 | 免费观看日韩 | a天堂在线视频 | www..com色 | 亚洲欧洲视频在线观看 | 国精产品乱码一区一区三区四区 | 黄色一极毛片 | 精品人妻少妇一区二区三区 | 欧美日韩色综合 | 99色在线观看 | 熟妇人妻va精品中文字幕 | 日本一区免费视频 | 成人夜晚看av | 午夜影院福利社 | 亚洲美女色 | 国产91精选 | 中文日韩av | 国久久久 | 久久青青草原亚洲av无码麻豆 | 99青草 | 你懂的在线观看网站 | 男男h黄动漫啪啪无遮挡软件 | 亚洲av无码一区二区乱子仑 | 四虎啪啪 | 怡红院一区二区三区 | 国产精品xxx在线观看www | 美女丝袜合集 | 四虎影院一区 | 黑人玩弄人妻一区二区绿帽子 | 免费的性爱视频 | chinese hd av| 精品久久久久久久久久岛国gif | 亚洲一区二区三区在线看 | 亚洲不卡视频在线观看 | 性生交大片免费看l |