匯入Excel 10張1m左右的圖片 使用時間過長
uj5u.com熱心網友回復:
添加圖片時出現警告
uj5u.com熱心網友回復:
你這個錯誤是陣列上限,也就是你的byte陣列定義小了,可以一句你的圖片的大小來定義陣列uj5u.com熱心網友回復:
我是參考的 VS 下載的NOPI擴展 追蹤不到代碼所在位置 這個要怎么改啊
uj5u.com熱心網友回復:
加個斷點單調一下uj5u.com熱心網友回復:
錯誤提示你的圖片大小為293888,你定義一個這么大小的陣列試一下uj5u.com熱心網友回復:
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.Data.SQLite;
private void Form1_Load(object sender, EventArgs e)
{
HSSFWorkbook workbook = new HSSFWorkbook();
ISheet sheet1 = workbook.CreateSheet("sheet1");
sheet1.SetColumnWidth(0, 21 * 256);
sheet1.SetColumnWidth(1, 12 * 256);
sheet1.SetColumnWidth(3, 15 * 256);
IRow rowHeader = sheet1.CreateRow(0);//創建表頭行
rowHeader.CreateCell(0, CellType.String).SetCellValue("圖片ID");
rowHeader.CreateCell(1, CellType.String).SetCellValue("圖片");
HSSFPatriarch patriarch = (HSSFPatriarch)sheet1.CreateDrawingPatriarch();
for(int i = 1; i<= 5; i++)
{
IRow row = sheet1.CreateRow(i);
row.CreateCell(0, CellType.String).SetCellValue(i);
setPic(workbook, patriarch, "D:\\123.png", sheet1, i, 1);
}
var path = "D:/a.xls";
using (System.IO.Stream stream = System.IO.File.OpenWrite(path))
{
workbook.Write(stream);
}
}
private void setPic(HSSFWorkbook workbook, HSSFPatriarch patriarch, string path, ISheet sheet, int rowline, int col)
{
if (string.IsNullOrEmpty(path)) return;
byte[] bytes = System.IO.File.ReadAllBytes(@path);
int pictureIdx = workbook.AddPicture(bytes, PictureType.JPEG);
// 插圖片的位置 HSSFClientAnchor(起始單元格的x偏移量,起始單元格的y偏移量,結束單元格的x偏移量,結束單元格的y偏移量,列,行)
HSSFClientAnchor anchor = new HSSFClientAnchor(70, 10, 0, 0, col, rowline, col + 1, rowline + 1);
//把圖片插到相應的位置
HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor, pictureIdx);
}
這是我上傳圖片的代碼里邊沒有可以設定尺寸的方法

上傳圖片一張3m直接系統崩潰了
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/270241.html
標籤:C#
下一篇:作業問題
