public void TestMacPicture() { HSSFWorkbook wb = HSSFTestDataSamples.OpenSampleWorkbook("53446.xls"); List <HSSFPictureData> lst = (List <HSSFPictureData>)wb.GetAllPictures(); Assert.AreEqual(1, lst.Count); HSSFPictureData pict = lst[(0)]; String ext = pict.SuggestFileExtension(); if (!ext.Equals("png")) { Assert.Fail("Expected a PNG."); } //try to read image data using javax.imageio.* (JDK 1.4+) byte[] data = pict.Data; using (MemoryStream ms = new MemoryStream(data)) { Image png = Image.Load(ms); Assert.IsNotNull(png); Assert.AreEqual(78, png.Width); Assert.AreEqual(76, png.Height); Assert.AreEqual((int)PictureType.PNG, pict.Format); Assert.AreEqual("image/png", pict.MimeType); } }
/// <summary> /// 图片命名 /// </summary> /// <param name="supplierName"></param> /// <param name="productType"></param> /// <param name="ntsCode"></param> public void Excute(string filePath, string savePath) { BizProduct bizProduct = new BizProduct(); System.Collections.IList allPictures; string errMsg; IList <Product> products = bizProduct.ReadListFromExcelWithAllPictures( new System.IO.FileStream(filePath, System.IO.FileMode.Open) , out errMsg , out allPictures ); // IList<Product> products = importer.Read(new System.IO.FileStream(filePath, System.IO.FileMode.Open), out allPictures); if (products.Count != allPictures.Count) { throw new Exception(string.Format("提取失败:产品和图片的数量不相等.产品:{0},图片:{1}", products.Count, allPictures.Count)); } for (int i = 0; i < products.Count; i++) { HSSFPictureData pic = (HSSFPictureData)allPictures[i]; var modelNumber = NLibrary.StringHelper.ReplaceInvalidChaInFileName(products[i].ModelNumber, "$") + ".jpg"; string fileName = savePath + modelNumber; NLibrary.IOHelper.EnsureFileDirectory(fileName); File.WriteAllBytes(fileName, pic.Data); } }
public void TestPictures() { HSSFWorkbook wb = HSSFTestDataSamples.OpenSampleWorkbook("SimpleWithImages.xls"); IList lst = wb.GetAllPictures(); //Assert.AreEqual(2, lst.Count); for (IEnumerator it = lst.GetEnumerator(); it.MoveNext();) { HSSFPictureData pict = (HSSFPictureData)it.Current; String ext = pict.SuggestFileExtension(); byte[] data = pict.Data; if (ext.Equals("jpeg")) { //try to read image data using javax.imageio.* (JDK 1.4+) Image jpg = Image.Load(new MemoryStream(data)); Assert.IsNotNull(jpg); Assert.AreEqual(192, jpg.Width); Assert.AreEqual(176, jpg.Height); } else if (ext.Equals("png")) { //try to read image data using javax.imageio.* (JDK 1.4+) Image png = Image.Load(new MemoryStream(data)); Assert.IsNotNull(png); Assert.AreEqual(300, png.Width); Assert.AreEqual(300, png.Height); } else { //TODO: Test code for PICT, WMF and EMF } } }
public static void CopyImage(HSSFSheet sheet, HSSFPictureData picData, int row, int col) { var pictureIdx = sheet.Workbook.AddPicture(picData.Data, (NPOI.SS.UserModel.PictureType)picData.Format); var drawing = sheet.CreateDrawingPatriarch(); ICreationHelper helper = sheet.Workbook.GetCreationHelper(); var anchor = helper.CreateClientAnchor(); anchor.Col1 = col; anchor.Row1 = row; var pict = drawing.CreatePicture(anchor, pictureIdx); pict.Resize(); }