最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c#使用EPPlus將圖片流嵌入到Excel實現(xiàn)示例

 更新時間:2023年12月18日 14:09:05   作者:譚廣健  
這篇文章主要為大家介紹了c#使用EPPlus將圖片流嵌入到Excel實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

引言

話說好長時間沒用EPPlus進行生成Excel文件,對上的文章也是2019(EPPlus秘籍之Excel導(dǎo)出之圖表導(dǎo)出),之后就有用但都是很簡單的應(yīng)用。這次為什么又提起呢?是因為一開始用FastReport做報表不錯,但后來要求導(dǎo)出到Excel并且要在文件中插入圖片,那就犯難了。因為圖片是放在云服務(wù)器上的,最簡單就做個圖片引用就完事。但問題是導(dǎo)出的Excel后需要在內(nèi)網(wǎng)(與互聯(lián)網(wǎng)斷開)的情況進行處理。那怎么辦呢?有困難就要克服,那只能祭出我們的EPPlus

EPPlus秘籍之Excel導(dǎo)出之圖表導(dǎo)出

弄個License

首先上個干貨,就是EPPlus最新版開始商用要求License,那怎么解決,簡單了就是弄個License。。

ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial;

這樣就解決License的問題。好,到主題了,因為我們的圖片都是放在云服務(wù)器,直接引用可以,但無互聯(lián)網(wǎng)就不行,那怎么辦。

辦法很簡單將圖片嵌入到Excel解決,那又怎么嵌入的?研究了個把小時,終于有思路了。

圖片采集的功能

將云服務(wù)器上的圖片轉(zhuǎn)化為文件流,然后通過文件流寫入到Excel。這又怎么把云服務(wù)器的圖片轉(zhuǎn)為文件流了,有了之前寫過一個圖片采集的功能

核心代碼

// 將圖片轉(zhuǎn)為byte字段
 public byte[] DownloadImageAsByteArray(string imageUrl)
 {
     using (var client = new HttpClient())
     {
         var response = client.GetAsync(imageUrl).Result;
         return response.Content.ReadAsByteArrayAsync().Result;
     }
 }
 MemoryStream imageData = new System.IO.MemoryStream(DownloadImageAsByteArray(img_src));

上面的DownloadImageAsByteArray的方法,就是將圖片地址的圖片轉(zhuǎn)為byte字段,然后再寫入MemoryStream類了,就完成圖片的采集。

如何讓寫入

既然內(nèi)存類已經(jīng)獲得圖片的文件流,那又怎么寫入呢?

查看了一圈EPPlus才發(fā)現(xiàn)有2個方法:

  • 1、AddPicture 這個直接存入。
  • 2、AddPictureAsync 照字面解析應(yīng)該是異步。

2個都可以但AddPictureAsync可能是異步的原因無法進行圖片的定位,當(dāng)然也可能我沒發(fā)現(xiàn),反正我直接用AddPicture、然后SetSize及SetPosition完事。AddPictureAsync這個就沒后繼試,如果圖片多可以再研究。

上代碼吧

 string img_src = ps_list.URL.Replace("cloud://cloud1-8g4e2khfd2b8c508.636c-cloud1-8g4e2khfd2b8c508-1320236877", "http://636c-cloud1-8g4e2khfd2b8c508-1320236877.tcb.qcloud.la");
 MemoryStream imageData = new System.IO.MemoryStream(DownloadImageAsByteArray(img_src));
 ExcelPicture image = worksheet.Drawings.AddPicture(obj.Id, imageData);
 image.SetSize(300, 300);
 image.SetPosition(rowIndex - 1, 30, 9, 30);

大概就是將微信云的圖片轉(zhuǎn)為 http方式,然后將圖片存入文件流;再注入到EPPlus,然后就設(shè)置圖片大小及位置。這里值得一提的是SetPosition,SetPosition可以4個參數(shù),第一個Row就是行,第二個就行起位置,第三個就是列,最后一個就是列起位置。 這樣就完美地將通過EPPlus將圖片嵌入到Excel里面了。

以上就是c#使用EPPlus將圖片流嵌入到Excel實現(xiàn)示例的詳細內(nèi)容,更多關(guān)于c# EPPlus圖片流嵌入Excel的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • RandomId生成隨機字符串詳解實例

    RandomId生成隨機字符串詳解實例

    本文主要介紹RandomId 生成隨機字符串的方法,大家參考使用吧
    2013-12-12
  • List轉(zhuǎn)換成DataSet實現(xiàn)代碼

    List轉(zhuǎn)換成DataSet實現(xiàn)代碼

    怎樣把List轉(zhuǎn)換成DataSet本人很是疑惑,于是搜集整理一番,需要的朋友可以參考下
    2012-12-12
  • C#中Linq的入門教程

    C#中Linq的入門教程

    這篇文章介紹了C#中Linq的基礎(chǔ)操作,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#使用Task實現(xiàn)并行編程

    C#使用Task實現(xiàn)并行編程

    這篇文章介紹了C#使用Task實現(xiàn)并行編程的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • C#實現(xiàn)WinForm全屏置頂?shù)氖纠a

    C#實現(xiàn)WinForm全屏置頂?shù)氖纠a

    我們在運行一些?Windows?應(yīng)用程序的時候,需要將其運行在窗體置頂?shù)哪J?并且進入全屏狀態(tài),本文將介紹如何使用?C#?來實現(xiàn)?WinForm?的全屏置頂?shù)幕竟δ?感興趣的可以了解下
    2024-12-12
  • C#實現(xiàn)開機自動啟動設(shè)置代碼分享

    C#實現(xiàn)開機自動啟動設(shè)置代碼分享

    這篇文章主要介紹了C#實現(xiàn)開機自動啟動設(shè)置代碼分享,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2015-07-07
  • C#實現(xiàn)高性能拍照與水印添加功能完整方案

    C#實現(xiàn)高性能拍照與水印添加功能完整方案

    在工業(yè)檢測、質(zhì)量追溯等應(yīng)用場景中,經(jīng)常需要對產(chǎn)品進行拍照并添加相關(guān)信息水印,本文將詳細介紹如何使用C#實現(xiàn)一個高性能的拍照和水印添加功能,包含完整的代碼實現(xiàn)和優(yōu)化技巧,需要的朋友可以參考下
    2025-09-09
  • C#編程中使用設(shè)計模式中的原型模式的實例講解

    C#編程中使用設(shè)計模式中的原型模式的實例講解

    這篇文章主要介紹了C#編程中使用設(shè)計模式中的原型模式的實例講解,原型模式創(chuàng)建新對象方便快捷,而且可在運行時根據(jù)需要通過克隆來添加和去除他們,也可在程序運行是根據(jù)情況來修改類內(nèi)部的數(shù)據(jù),需要的朋友可以參考下
    2016-02-02
  • 解決C# X64應(yīng)用程序中讀取WParam溢出的問題

    解決C# X64應(yīng)用程序中讀取WParam溢出的問題

    C#應(yīng)用程序是AnyCPU的,在一段處理鼠標(biāo)滾輪WM_MOUSEWHEEL的代碼里碰到溢出的問題OverflowException
    2013-04-04
  • C#獲取本機IP地址(ipv4)

    C#獲取本機IP地址(ipv4)

    本文主要介紹了C#獲取本機所有IP地址的方法、C#獲取本機IP地址(ipv4)的方法等。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03

最新評論

台江县| 海安县| 田林县| 台中市| 长丰县| 乌鲁木齐县| 临泽县| 嵊泗县| 临桂县| 彭山县| 宾川县| 永登县| 肃南| 通榆县| 镇江市| 仁布县| 育儿| 西和县| 中宁县| 上林县| 垫江县| 大丰市| 将乐县| 中江县| 淮滨县| 崇左市| 龙口市| 万荣县| 剑川县| 佛山市| 定陶县| 科技| 南雄市| 左云县| 宜兰市| 浠水县| 宁武县| 安岳县| 阜新| 三门县| 体育|