.net WEB 利用NPOI导出数据到EXCEL

liangzhl 2012-02-06 10:32:18
要求,不是简单的只导出数据到EXCEL

而是数据里面有一列是图片,要同时将图片一起导出到EXCEL中,比如产品名称,图片,型号,单价,金额

图片列在数据库里面要用什么类型?如何导出到EXCEL呢?

求助,急
...全文
759 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangzhl 2012-02-08
  • 打赏
  • 举报
回复
求5楼的大侠,能给个.NET的版 的不???????
liangzhl 2012-02-08
  • 打赏
  • 举报
回复
求5楼的大侠,能给个.NET的版 的不???????
段传涛 2012-02-07
  • 打赏
  • 举报
回复
http://qianxk.com/thread-12404-1-1.html
liangzhl 2012-02-07
  • 打赏
  • 举报
回复
5楼的大侠,那个是JAVA的吧,汗死
段传涛 2012-02-06
  • 打赏
  • 举报
回复
如果 还 没有搞定的话 ,就去下载个实例。
我是这么搞定的。
Ultimate 2012-02-06
  • 打赏
  • 举报
回复
没做过这种,数据库中用2进制存的图片还是只是图片地址
liangzhl 2012-02-06
  • 打赏
  • 举报
回复
嗯,我要的就是把DT里面某一列图片,循环导出到对应的EXCEL里面来的。

段传涛 2012-02-06
  • 打赏
  • 举报
回复
我上月 收集的

利用POI循环导出图片到Excel

protected void buildExcelDocument(Map model, HSSFWorkbook hw,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
try {
List result = (List)model.get("userExcels");
InputStream is=this.getInputStream();
hw=new HSSFWorkbook(is);
is.close();
HSSFSheet sheet=hw.getSheetAt(0);
//真正有意义的是下面这句代码,不管你插入多少图片,都只要生成一个HSSFPatriarch 的对象
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();//一定要放在循环外,只能声明一次。
int rowNum=1;
sheet.setColumnWidth((short)3, (short)2856); //setColumnWidth(short columnIndex, short width) width=2856/35.7=80px;
for(int i=0;i<result.size();i++)
{
HSSFRow row = sheet.createRow(rowNum + i);
row.setHeightInPoints(80);//行高80px;
User user=(User)result.get(i);
row.createCell((short)0).setCellValue(user.getId());
row.createCell((short)1).setCellValue(user.getMobile());
row.createCell((short)2).setCellValue(user.getEmail());
String path = this.getServletContext().getRealPath("/");
String picName=path+user.getPersonPhoto();
if(user.getPersonPhoto()!=null)
{
File file=new File(picName);
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
BufferedImage bufferImg = ImageIO.read(file);
String s=user.getPersonPhoto();
String ss=s.substring(s.lastIndexOf(".")+1);
if("jpg".equalsIgnoreCase(ss))
{
ImageIO.write(bufferImg, "jpg", byteArrayOut);
HSSFClientAnchor anchor =new HSSFClientAnchor(0,0,1020,250,(short)3,i+1,(short)3,i+1);//dx2最大值 1023,dy2最大值255
//HSSFClientAnchor(int dx1, int dy1, int dx2, int dy2, short col1, int row1, short col2, int row2)
patriarch.createPicture(anchor,hw.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_JPEG));
//POI只支持DIB,EMF,JPEG,PICT,PNG,WMF格式
} else if("png".equalsIgnoreCase(ss)) {
ImageIO.write(bufferImg, "png", byteArrayOut);
HSSFClientAnchor anchor =new HSSFClientAnchor(0,0,1020,250,(short)3,i+1,(short)3,i+1);
patriarch.createPicture(anchor,hw.addPicture(byteArrayOut.toByteArray(),HSSFWorkbook.PICTURE_TYPE_PNG));
} else{
row.createCell((short)3).setCellValue("无照片");
}
}
}
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("GBK");
hw.write(response.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
}
段传涛 2012-02-06
  • 打赏
  • 举报
回复
http://npoi.codeplex.com/
段传涛 2012-02-06
  • 打赏
  • 举报
回复
C#导出Excel--插入图片

代码:

Sheet sheet1 = hssfworkbook.CreateSheet(“PictureSheet”);

HSSFPatriarch patriarch = (HSSFPatriarch)sheet1.CreateDrawingPatriarch();

HSSFClientAnchor anchor;
anchor = new HSSFClientAnchor(0, 0, 0, 255, 2, 2, 4, 7);
anchor.AnchorType = 2;
//C#导出Excel
HSSFPicture picture = (HSSFPicture)patriarch.CreatePicture(anchor,

LoadImage(“1.jpg”, hssfworkbook));

picture.Resize();
picture.LineStyle = HSSFPicture.LINESTYLE_DASHDOTGEL;
C#导出Excel–加载图片代码

public static int LoadImage(string path, HSSFWorkbook wb)
{
System.IO.FileStream file = new System.IO.FileStream(path,

System.IO.FileMode.Open, System.IO.FileAccess.Read);
byte[] buffer = new byte[file.Length];
file.Read(buffer, 0, (int)file.Length);
return wb.AddPicture(buffer, PictureType.JPEG);
}
首先要设置HSSFPatriarch对象,然后确定图片显示的区域new HSSFClientAnchor(0,

0, 0, 255, 2, 2, 4, 7),最后加载图片然后显示。通过NPOI来实现C#导出Excel文件

liangzhl 2012-02-06
  • 打赏
  • 举报
回复
.COM的话,有时候很麻烦,时不时的出什么问题。NPOI是一个类库,可以生成EXCEL,方便啊。

求实例。大侠们
crackdung 2012-02-06
  • 打赏
  • 举报
回复
爲什麽不使用web專用控件,你要求的那個是com類型,不是純.NET開發的

http://ufo-crackerx.blog.163.com/blog/static/113078778201201542333900/
liangzhl 2012-02-06
  • 打赏
  • 举报
回复
求实例,哪位大侠有呢,发我邮箱303322108@qq.com.不甚感激啊,急死人了。
liangzhl 2012-02-06
  • 打赏
  • 举报
回复
求实例
tm62490309 2012-02-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jason_dct 的回复:]

如果 还 没有搞定的话 ,就去下载个实例。
我是这么搞定的。
[/Quote]

你能不能把给个实例看看?

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧