国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

使用NPOI導(dǎo)出包含圖片數(shù)據(jù)的EXCEL文件打不開(kāi),幫忙看下代碼

瀏覽:115日期:2022-10-15 09:45:18

問(wèn)題描述

要建立一個(gè)三列的excel表格,最后一列是個(gè)二維碼,使用NPOI寫(xiě)完之后,導(dǎo)出的死活打不開(kāi),不知道代碼哪里錯(cuò)了,麻煩各位幫忙看看代碼哪里錯(cuò)了,不甚感激。

public static void CreateImageExcel(List<string> links){ //創(chuàng)建工作薄 HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = (HSSFSheet)workbook.CreateSheet("Sheet1"); //填充列標(biāo)題以及樣式 int rowsNum = 0; //行號(hào) HSSFRow headerRow = (HSSFRow)sheet.CreateRow(rowsNum); string strQrCodePath = ""; headerRow.CreateCell(0, CellType.String).SetCellValue("編號(hào)"); headerRow.CreateCell(1, CellType.String).SetCellValue("鏈接"); headerRow.CreateCell(2, CellType.String).SetCellValue("二維碼"); HSSFRow row = null; rowsNum = 1; //行號(hào),從第2行開(kāi)始 foreach (var link in Links) {//寫(xiě)入字段值 row = (HSSFRow)sheet.CreateRow(rowsNum);row.CreateCell(0, CellType.String).SetCellValue(rowsNum);row.CreateCell(1, CellType.String).SetCellValue(Link);row.CreateCell(2, CellType.Blank).SetCellValue("");strQrCodePath = CommonHelper.CreateQRCode(Configer.GetAppSetting<string>("siteUrl") + "/p/" + item.Link, 8, 4);byte[] bytes = System.IO.File.ReadAllBytes(strQrCodePath);int pictureIdx = workbook.AddPicture(bytes, PictureType.PNG);HSSFPatriarch patriarch = (HSSFPatriarch)sheet.CreateDrawingPatriarch();HSSFClientAnchor anchor = new HSSFClientAnchor(0, 10, 1023, 0, 2, rowsNum, 2, rowsNum);HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor, pictureIdx);pict.Resize();rowsNum++;//刪除二維碼if (System.IO.File.Exists(strQrCodePath)){ System.IO.File.Delete(strQrCodePath);} } using (MemoryStream ms = new MemoryStream()) {workbook.Write(ms);ms.Flush();ms.Position = 0;// 設(shè)置編碼和附件格式 string fileName = model.Channel.Name + "_" + DateTime.Now.ToString("yyyy-MM-dd-HHmmss") + ".xlsx";//客戶端保存的文件名System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";System.Web.HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;System.Web.HttpContext.Current.Response.Charset = "";System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, Encoding.UTF8));System.Web.HttpContext.Current.Response.BinaryWrite(ms.GetBuffer());ms.Close();ms.Dispose();System.Web.HttpContext.Current.Response.End(); }}

問(wèn)題解答

回答1:

//創(chuàng)建工作薄 HSSFWorkbook workbook = new HSSFWorkbook(); 應(yīng)該是這句代碼的問(wèn)題HSSFWorkbook創(chuàng)建的工作簿只支持2003格式的,即xls要想導(dǎo)出xlsx的格式,應(yīng)該用XSSFWorkbook對(duì)象,例如IWorkbook workbook = new XSSFWorkbook();我今天在做導(dǎo)入也遇到這個(gè)問(wèn)題,通過(guò)上面的方式解決的

回答2:

改完了,只能導(dǎo)出.xls文件,不知道是不是其中有圖片的原因,導(dǎo)出的.xlsx文件無(wú)法查看。

標(biāo)簽: excel
主站蜘蛛池模板: 广河县| 张家界市| 离岛区| 苍梧县| 稷山县| 昭通市| 章丘市| 邵东县| 武川县| 尉犁县| 清新县| 上林县| 天镇县| 浙江省| 海原县| 宁海县| 双牌县| 玉田县| 庆云县| 平远县| 香港 | 通辽市| 石首市| 舞阳县| 伊宁县| 新巴尔虎左旗| 瓦房店市| 长武县| 营山县| 神农架林区| 漯河市| 法库县| 阿巴嘎旗| 环江| 新龙县| 庆城县| 阿鲁科尔沁旗| 安宁市| 邵东县| 祁东县| 黑水县|