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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

【NPOI】.NET EXCEL导入导出开发包

發布時間:2024/10/12 asp.net 104 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【NPOI】.NET EXCEL导入导出开发包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.導出

?? //工作簿HSSFWorkbook

??????????? HSSFWorkbook hssfworkbook = new HSSFWorkbook();

?? //ISheet頁

??????????? ISheet sheet1 = hssfworkbook.CreateSheet("員工資料");

?? //創建行?????????

??????????? IRow rowHeader = sheet1.CreateRow(0);

?? //設置第一行中的每一個單元格

??????????? rowHeader.CreateCell(0, CellType.STRING).SetCellValue("工號");

?? //保存

?????????? using (Stream stream = File.OpenWrite(filename))

?????????? {

?????????????? hssfworkbook.Write(stream);

?????????? }

2.設置樣式

?????????? ICellStyle cellStyle = hssfworkbook.CreateCellStyle();

??????????? IDataFormat dataFormat = hssfworkbook.CreateDataFormat();

??????????? cellStyle.DataFormat = dataFormat.GetFormat("yyyy\"年\"m\"月\"d\"日\"");?

//入職日期

??????????? ICell InDateCell = rowContent.CreateCell(3, CellType.NUMERIC);

??????????? InDateCell.CellStyle = cellStyle;

??????????? InDateCell.SetCellValue(item.InDate);?

??????????? //設置Excel表格

3.設置寬度

在使用NPOI技術開發自動操作EXCEL軟件時遇到不能精確設置列寬的問題。

ISheet sheet1 = hssfworkbook.CreateSheet("Sheet1");

sheet1.SetColumnWidth(0,? 50 * 256);?? // 在EXCEL文檔中實際列寬為49.29

sheet1.SetColumnWidth(1, 100 * 256);?? // 在EXCEL文檔中實際列寬為99.29

sheet1.SetColumnWidth(2, 150 * 256);?? // 在EXCEL文檔中實際列寬為149.29

到此一般人應該知道問題出在哪了,解決方法如下:

ISheet sheet1 = hssfworkbook.CreateSheet("Sheet1");

sheet1.SetColumnWidth(0,? (int)((50 + 0.72) * 256));?? // 在EXCEL文檔中實際列寬為50

sheet1.SetColumnWidth(1,? (int)((100 + 0.72) * 256));?? // 在EXCEL文檔中實際列寬為100

sheet1.SetColumnWidth(2,? (int)((150 + 0.72) * 256));?? // 在EXCEL文檔中實際列寬為150

既在要設置的實際列寬中加上列寬基數:0.72

NPOI讀寫Excel

1、整個Excel表格叫做工作表:WorkBook(工作薄),包含的叫頁(工作表):Sheet;行:Row;單元格Cell。

2、NPOI是POI的C#版本,NPOI的行和列的index都是從0開始

3、POI讀取Excel有兩種格式一個是HSSF,另一個是XSSF。 HSSF和XSSF的區別如下:
HSSF is the POI Project's pure Java implementation of the Excel '97(-2007) file format.
XSSF is the POI Project's pure Java implementation of the Excel 2007 OOXML (.xlsx) file format.
即:HSSF適用2007以前的版本,XSSF適用2007版本及其以上的。

下面是用NPOI讀寫Excel的例子:ExcelHelper封裝的功能主要是把DataTable中數據寫入到Excel中,或者是從Excel讀取數據到一個DataTable中。

ExcelHelper類:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using NPOI.HSSF.UserModel; using System.IO; using System.Data;namespace GMapDemo {class ExcelHelper : IDisposable{private string fileName = null; //文件名private IWorkbook workbook = null;private FileStream fs = null;private bool disposed;public ExcelHelper(string fileName){this.fileName = fileName;disposed = false;}/// <summary>/// 將DataTable數據導入到excel中/// </summary>/// <param name="data">要導入的數據</param>/// <param name="isColumnWritten">DataTable的列名是否要導入</param>/// <param name="sheetName">要導入的excel的sheet的名稱</param>/// <returns>導入數據行數(包含列名那一行)</returns>public int DataTableToExcel(DataTable data, string sheetName, bool isColumnWritten){int i = 0;int j = 0;int count = 0;ISheet sheet = null;fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);if (fileName.IndexOf(".xlsx") > 0) // 2007版本workbook = new XSSFWorkbook();else if (fileName.IndexOf(".xls") > 0) // 2003版本workbook = new HSSFWorkbook();try{if (workbook != null){sheet = workbook.CreateSheet(sheetName);}else{return -1;}if (isColumnWritten == true) //寫入DataTable的列名{IRow row = sheet.CreateRow(0);for (j = 0; j < data.Columns.Count; ++j){row.CreateCell(j).SetCellValue(data.Columns[j].ColumnName);}count = 1;}else{count = 0;}for (i = 0; i < data.Rows.Count; ++i){IRow row = sheet.CreateRow(count);for (j = 0; j < data.Columns.Count; ++j){row.CreateCell(j).SetCellValue(data.Rows[i][j].ToString());}++count;}workbook.Write(fs); //寫入到excelreturn count;}catch (Exception ex){Console.WriteLine("Exception: " + ex.Message);return -1;}}/// <summary>/// 將excel中的數據導入到DataTable中/// </summary>/// <param name="sheetName">excel工作薄sheet的名稱</param>/// <param name="isFirstRowColumn">第一行是否是DataTable的列名</param>/// <returns>返回的DataTable</returns>public DataTable ExcelToDataTable(string sheetName, bool isFirstRowColumn){ISheet sheet = null;DataTable data = new DataTable();int startRow = 0;try{fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);if (fileName.IndexOf(".xlsx") > 0) // 2007版本workbook = new XSSFWorkbook(fs);else if (fileName.IndexOf(".xls") > 0) // 2003版本workbook = new HSSFWorkbook(fs);if (sheetName != null){sheet = workbook.GetSheet(sheetName);}else{sheet = workbook.GetSheetAt(0);}if (sheet != null){IRow firstRow = sheet.GetRow(0);int cellCount = firstRow.LastCellNum; //一行最后一個cell的編號 即總的列數if (isFirstRowColumn){for (int i = firstRow.FirstCellNum; i < cellCount; ++i){DataColumn column = new DataColumn(firstRow.GetCell(i).StringCellValue);data.Columns.Add(column);}startRow = sheet.FirstRowNum + 1;}else{startRow = sheet.FirstRowNum;}//最后一列的標號int rowCount = sheet.LastRowNum;for (int i = startRow; i <= rowCount; ++i){IRow row = sheet.GetRow(i);if (row == null) continue; //沒有數據的行默認是null       DataRow dataRow = data.NewRow();for (int j = row.FirstCellNum; j < cellCount; ++j){if (row.GetCell(j) != null) //同理,沒有數據的單元格都默認是nulldataRow[j] = row.GetCell(j).ToString();}data.Rows.Add(dataRow);}}return data;}catch (Exception ex){Console.WriteLine("Exception: " + ex.Message);return null;}}public void Dispose(){Dispose(true);GC.SuppressFinalize(this);}protected virtual void Dispose(bool disposing){if (!this.disposed){if (disposing){if (fs != null)fs.Close();}fs = null;disposed = true;}}} }

轉載于:https://www.cnblogs.com/mcad/p/4124035.html

總結

以上是生活随笔為你收集整理的【NPOI】.NET EXCEL导入导出开发包的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 交做爰xxxⅹ性爽 | 欧美一级特黄aaaaaa | 美女校花脱精光 | 欧美人与禽zozzo性之恋的特点 | 亚洲射色 | 92精品 | 一本一道久久a久久 | 久久人人妻人人人人妻性色av | 美女被草出水 | 久久午夜夜伦鲁鲁片无码免费 | 天天想你免费观看完整版高清电影 | 在线播放不卡 | 欧洲成人在线视频 | 免费观看黄色小视频 | 在线免费观看国产精品 | 午夜不卡在线观看 | 五月激情综合 | 日韩色网站 | 无码人妻久久一区二区三区蜜桃 | 桃色一区| 男人捅爽女人 | 张柏芝54张无删码视频 | 久久久久久蜜桃 | 亚洲第五页 | 婷婷丁香五 | 免费性视频 | 91精品国产乱码久久久久 | 国产亚洲精品成人a | 超碰97人人爱 | 婷婷激情久久 | 亚洲精品国产精品国自 | 久久aⅴ国产欧美74aaa | 青青草手机在线 | 欧洲精品一区 | 欧美视频免费在线观看 | 日产精品一区 | 国产中文网 | 免费在线黄色网 | 日本三级视频在线播放 | 欧美丝袜一区二区三区 | 91精品国产高清91久久久久久 | 99精品久久久久久久婷婷 | 中文字幕成人 | 久久99国产精品 | 91精品国产高潮对白 | 久色电影| 国内精品久久久久久 | 最新av网站在线观看 | 欧美一区二区国产 | 欧美精品在线一区二区 | 人妻丰满熟妇av无码久久洗澡 | 亚天堂| 国产精品视频一二区 | 99热这里只有精品8 国产一卡二 | 天天草综合 | 少妇影院在线观看 | 手机免费看av片 | 日韩精品一区二区三区视频在线观看 | 成人看片网站 | 国产黑丝在线视频 | 91丝袜一区在线观看 | 国产六区 | 欧美性受xxxxxx黑人xyx性爽 | 黄色a一级视频 | 久久五月视频 | 亚欧在线观看 | 亚洲伦理自拍 | 亚洲无线看 | 成人毛片在线免费观看 | 国产精品456| 久久久夜色精品亚洲 | 91美女在线视频 | 成人做爰黄| 五十路六十路 | 欧洲色网站 | 麻豆婷婷| 婷婷在线免费视频 | 精品成人无码久久久久久 | 久久精品国产免费看久久精品 | 色资源在线观看 | 你懂的在线观看网站 | 岛国片免费在线观看 | 亚洲无码乱码精品国产 | 日韩精选 | 国产91视频播放 | 丰满护士巨好爽好大乳 | 2017天天干 | 涩涩视频网站在线观看 | 欧美美女性视频 | 国产睡熟迷奷系列精品视频 | 992tv人人草 国产第6页 | 欧美成人片在线观看 | 三上悠亚ssⅰn939无码播放 | 国产做爰免费观看 | 久久久美女视频 | 99久久精 | 国产中文欧美日韩在线 | 女同性αv亚洲女同志 | 秋霞午夜影院 |