用C#编程从数据库中读取图片数据导进Excel文件的方法

Lvyou1980 2004-04-24 03:54:08
近日在毕业设计中遇到要解决用C#编程从数据库中读取图片数据导进Excel文件的问题,经过两三天的苦苦搜索资料想方设法解决问题,终于获得解决方法,代码如下(程序要另外引用Excel.dll,需要获取文件请访问:
http://sunrise.szu.edu.cn/Lvyou/Forum/ForumContent.asp?ID=182):

using System;
using System.IO;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;
using Excel;

private void EduceExcel()
{
string picPath=Directory.GetCurrentDirectory()+'\\Excelpic.jpg';
string ExcelName=Directory.GetCurrentDirectory()+'\\ExcelModul.xls';
string fileName = 'Excel'+DateTime.Now.ToString().Replace(':', '') + '.xls';
Excel.Application app =new Excel.Application();//建立Excel对象
app.Visible=true;//让Excel文件可见
Workbook objbook;
objbook = app.Workbooks.Add(ExcelName);
Worksheet worksheet;
worksheet =(Worksheet)objbook.Worksheets[1];
Excel.Pictures pics=(Excel.Pictures)worksheet.Pictures(Type.Missing);//建立图片集合对象

int TD=1;
int p=1;
PicItemColletion picItems= PicItem.Getpictems();//读取数据库图片数据集合
foreach(PicItem PI in picItems)
{
if(PI.ImageData != null)
{
MemoryStream stream = new MemoryStream(PI.ImageData, 0, PI.ImageData.Length);

Bitmap bitmap = new Bitmap(stream);

bitmap.Save(picPath,System.Drawing.Imaging.ImageFormat.Jpeg);//保存临时图片文件到硬盘里
if(File.Exists(picPath))
{
stream.Close();//关闭图像文件流

Range range_1 =range=worksheet.get_Range('A'+TD.ToString(),'A'+TD.ToString());
//获取填充单元格范围

pics.Insert(picPath,Type.Missing);//获取图片

Excel.Picture pic = (Excel.Picture )pics.Item(p);//建立图片集合某一图片对象

pic.Left = (double)range_1.Left;
pic.Top = (double)range_1.Top;
pic.Height =(double)range_1.Height;
pic.Width =(double)range_1.Width;
TD=TD+1;
p=p+1;
}
}

if(File.Exists(picPath))
{
File.Delete(picPath);//删除图片
}
}
...全文
413 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,543

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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