如何把图片插入Excel的一个单元格中
1个回答
展开全部
需要添加COM组件--Microsoft Excel 11.0 Object Library 的引用。
代码的核心在图片的转换和设置excel显示图片的单元格
这个方法转换图片,传入一个excel的workbook对象和转换成字符型的image字段。
private void ExtractPicture(Excel.Workbook p_Workbook, string p_imageStr){byte[] v_Bytes = Convert.FromBase64String(p_imageStr);
if (v_Bytes.Length 0){FileStream v_FileStream = new FileStream(p_Workbook.FullName + ".jpeg", FileMode.CreateNew);
BinaryWriter v_BinaryWriter = new BinaryWriter(v_FileStream);
// v_BinaryWriter.Write(v_Bytes);
for(int i=0;i<v_Bytes.Length;i++){v_BinaryWriter.Write(v_Bytes[i]);}v_BinaryWriter.Close();
v_FileStream.Close();}}
下面这个方法在Excel中设置图片位置。
private void SetPictureToRange(Excel.Workbook p_Workbook, Excel.Worksheet p_Worksheet, string p_strRangeName){Excel.Pictures v_Pictures = (Excel.Pictures)p_Worksheet.Pictures(Type.Missing);
Excel.Picture v_Picture = v_Pictures.Insert(p_Workbook.FullName + ".jpeg", Type.Missing);
// Excel的get_Range方法可以得到Excel的单元格,可以用来设置图片显示的位置
Excel.Range v_Range = p_Worksheet.get_Range(p_strRangeName, Type.Missing);
double v_fFactor = 1;
//设置图片大小
if (v_Picture.Width * (double)v_Range.Height v_Picture.Height * (double)v_Range.Width)
v_fFactor = (double)v_Range.Width / (double)v_Picture.Width;elsev_fFactor = (double)v_Range.Height / (double)v_Picture.Height;
v_Picture.Left = (double)v_Range.Left + ((double)v_Range.Width - (v_Picture.Width * v_fFactor)) / 2 + 1;
v_Picture.Top = (double)v_Range.Top + ((double)v_Range.Height - (v_Picture.Height * v_fFactor)) / 2 + 1;
v_Picture.Width = v_Picture.Width * v_fFactor - 0.5d;
v_Picture.Height = v_Picture.Height * v_fFactor - 0.5d;}
打开一个Excel很简单
private bool WorkbookOpen(string p_strWorkBookName){//returns TRUE if the workbook is open
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
博思aippt
2024-07-20 广告
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT...
点击进入详情页
本回答由博思aippt提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询