.NET使用NPOI實現(xiàn)讀取帶有圖片的excel數(shù)據(jù)
前言
在.net使用npoi插件進行批量導入時,獲取excel中的圖片數(shù)據(jù),存到集合中。
使用步驟
1.定義類PictureData
代碼如下:
public class PictureData
{
public byte[] Data { get; set; }
}
2.數(shù)據(jù)集引用
using NPOI.XSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel.Extensions;
npoi插件需要自己下載。
3.定義獲取excel圖片數(shù)據(jù)的方法GetDTWithImg
/// <summary>
/// 獲取excel中圖片數(shù)據(jù)
/// </summary>
/// <param name="path">文件路徑</param>
/// <returns>list</returns>
private List<PictureData> GetDTWithImg(string path)
{
using (FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read))
{
IWorkbook workbook = null;
ISheet sheet = null;
workbook = WorkbookFactory.Create(file);
sheet = workbook.GetSheet("Sheet1");
if (sheet == null)
{
sheet = workbook.GetSheetAt(0);
}
// 獲取繪圖對象
XSSFDrawing drawing = (XSSFDrawing)sheet.CreateDrawingPatriarch();
List<XSSFPicture> picturesInColumnA = new List<XSSFPicture>();
List<XSSFShape> shapes = drawing.GetShapes();
foreach (XSSFShape shape in shapes)
{
if (shape is XSSFPicture)
{
XSSFPicture picture = (XSSFPicture)shape;
XSSFClientAnchor anchor = (XSSFClientAnchor)picture.GetPreferredSize();
picturesInColumnA.Add(picture);
}
}
List<PictureData> pictureDataList = new List<PictureData>();
//將圖片數(shù)據(jù)放到集合中
foreach (XSSFPicture picture in picturesInColumnA)
{
byte[] pictureData = picture.PictureData.Data;
PictureData data = new PictureData
{
Data = pictureData
};
pictureDataList.Add(data);
}
return pictureDataList;
}
}
總結(jié)
通過該方法可以獲取excel中的圖片,將其轉(zhuǎn)換成字節(jié)流存到集合中,方便后續(xù)對其進行操作。
到此這篇關于.NET使用NPOI實現(xiàn)讀取帶有圖片的excel數(shù)據(jù)的文章就介紹到這了,更多相關.NET NPOI讀取帶圖片excel數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用 Salt + Hash 將密碼加密后再存儲進數(shù)據(jù)庫
如果你需要保存密碼(比如網(wǎng)站用戶的密碼),你要考慮如何保護這些密碼數(shù)據(jù),象下面那樣直接將密碼寫入數(shù)據(jù)庫中是極不安全的,因為任何可以打開數(shù)據(jù)庫的人,都將可以直接看到這些密碼2012-12-12
創(chuàng)建基于ASP.NET的SMTP郵件服務的具體方法
Asp.net在System.Web.Mail名稱空間中有一個發(fā)送email的內(nèi)建類,但這僅是cdosys的一個假象。開發(fā)者能使用一個替代的它smtp郵件服務。在這篇文章里面,我將會展示如何創(chuàng)建一個用于asp.net的功能齊全的smtp郵件服務2013-11-11
TreeView無刷新獲取text及value實現(xiàn)代碼
這篇文章介紹了TreeView無刷新獲取text及value實現(xiàn)代碼,有需要的朋友可以參考一下2013-10-10
.NET 排序 Array.Sort<T> 實現(xiàn)示例
System.Array.Sort<T> 是.NET內(nèi)置的排序方法, 本文就詳細的介紹一下具體使用,具有一定的參考價值,感興趣的可以了解一下2021-09-09

