2016-12-14 16 views
-1

Я хочу вставить изображение в файл XLSX (не xls) с помощью NPOI. Я использую XSSFWorkbook и XSSFSheetДобавить изображение в Excel (.xlsx) с помощью NPOI C#

byte[] data = File.ReadAllBytes("SomeImage.jpg"); 
int picInd = workbook.AddPicture(data, XSSFWorkbook.PICTURE_TYPE_JPEG); 
XSSFCreationHelper helper = workbook.GetCreationHelper() as XSSFCreationHelper; 
XSSFDrawing drawing = _sheet.CreateDrawingPatriarch() as XSSFDrawing; 
XSSFClientAnchor anchor = helper.CreateClientAnchor() as XSSFClientAnchor; 
anchor.Col1 = 1; 
anchor.Row1 = 1; 
XSSFPicture pict = drawing.CreatePicture(anchor, picInd) as XSSFPicture; 

Файл успешно сохранен. но при его открытии отображается следующая ошибка и при нажатии «да» изображение не отображается. enter image description here

+0

вы пробовали просто прибегая к помощи "NPOI изображений Excel" или проверки документации NPOI в? Есть много повторяющихся вопросов уже –

+0

Большинство из них предназначены для файла xls, который использует HSSFWorkbook. Я не смог найти решение для XSSFWorkbook – Sobhan

+0

этот человек не ответил http://stackoverflow.com/questions/24086803/insert-image-to-excel-file-using-npoi – Sobhan

ответ

0

Я получил решение:

byte[] data = File.ReadAllBytes("someImage.png"); 
int pictureIndex = workbook.AddPicture(data, PictureType.PNG); 
ICreationHelper helper = workbook.GetCreationHelper(); 
IDrawing drawing = _sheet.CreateDrawingPatriarch(); 
IClientAnchor anchor = helper.CreateClientAnchor(); 
anchor.Col1 = 0;//0 index based column 
anchor.Row1 = 0;//0 index based row 
IPicture picture = drawing.CreatePicture(anchor, pictureIndex); 
picture.Resize(); 
Смежные вопросы