将内存流中的图像添加到 Excel 文档

2024-04-02

我在内存流中有一个图像,我想将其写入 MS Excel 文档,PIA 仅公开采用文件路径的 AddPicture 方法。

有没有办法无需将图像写入光盘即可添加图片?

MSDN

http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.shapes.addpicture(v=office.14).aspx http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.shapes.addpicture(v=office.14).aspx


好吧,有点盲目飞行,但假设您的代码有一两件事(例如流的来源、数据类型等),这可能是一个解决方案:
首先,您需要从流(我假设是字节流,也假设流描述位图图像)创建位图图像数据。 Stack Overflow 上已经有一个解决方案:字节数组到位图图像 https://stackoverflow.com/questions/11730373/byte-array-to-bitmap-image
我从解决方案中复制粘贴代码:

int w= 100;
int h = 200;
int ch = 3; //number of channels (ie. assuming 24 bit RGB in this case)

byte[] imageData = new byte[whch]; //you image data here Bitmap bitmap = new Bitmap(w,h,PixelFormat.Format24bppRgb); BitmapData bmData = bitmap.LockBits(new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadWrite, bitmap.PixelFormat); IntPtr pNative = bmData.Scan0; Marshal.Copy(imageData,0,pNative,whch); bitmap.UnlockBits(bmData);
另外假设您有一个用于工作簿和要使用的工作表的对象,如下所示:
xlBook = (Excel.Workbook)objExcel.Workbooks.Add("");
xlSheet = (Excel.Worksheet)xlBook.Worksheets1 http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.paste%28v=vs.80%29.aspx;
xlSheet.Activate();
现在您已经有了一个位图类型变量和一个工作表,您所需要做的就是将图像粘贴到工作表中:
System.Windows.Forms.Clipboard.SetDataObject(bitmap, false);
xlsRange = xlSheet.get_Range((Excel.Range)xlSheet.Cells[5, 15], (Excel.Range)xlSheet.Cells[5, 15]);
xlSheet.Paste(xlsRange, bitmap);

所以关键是这个人(而不是使用“AddPicture”):工作表.粘贴方法 http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.paste%28v=vs.80%29.aspx

希望这可以帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将内存流中的图像添加到 Excel 文档 的相关文章

随机推荐

  • Excon::Errors::Forbidden in UsersController#update

    我正在尝试使用 Carrierwave 将图像上传到 Amazon S3 以便为我的用户提供上传头像的机会 当我添加图像文件并单击 更新 时 收到以下错误消息 Excon Errors Forbidden in UsersControlle
  • 如何使用 javascript 控制 Sass 变量

    我有一个正在生成 CSS 文件的 Sass 文件 我在 sass 文件中使用了许多变量作为背景颜色 字体大小 现在我想通过 JavaScript 控制所有变量 例如 在 style sass 中我们有 bg 000 font size 12
  • 命令行中转换命令出错

    我有一个 bash shell 脚本 如下所示 bin bash SIZES 512 1024 2048 for i in SIZES do SIZE SIZES i echo SIZE first resize original imag
  • 我需要 SQLBulkcopy 的进度条

    我的应用程序需要进度条 我正在通过文本文件将数据上传到 SQL Server 但这需要很多时间 而且我也使用了后台工作程序 但这不能正常工作 所以我只需要知道是否有任何方法可以将进度条与 SQL Bulk Copy 一起使用它告诉我插入了
  • Python:如何让程序等待函数或方法完成

    程序经常需要等待函数完成其工作 有时恰恰相反 主程序不需要等待 我举了一个简单的例子 有四个按钮 单击每个将调用相同的calculate 函数 唯一的区别是函数的调用方式 直接打电话 使用队列 每个线程完成后将结果放入队列中 然后您只需读取
  • 我必须使用 SVN API 或库访问/提交/更新 WPF 应用程序中的 SVN 存储库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 任何可用于从 net 应用程序访问 SVN 的好库 使用 C 到目前为止我发现的唯一 3 个我会尝试的
  • 如何使用 easy_install 安装 django 旧版本?

    我刚刚因为 django 1 3 破坏了我的环境 我的网站都无法运行 因此 我决定使用 virtualenv 来设置不同 python 版本以及 django 的虚拟环境 但是 似乎如果我下载软件包并使用 sudo python setup
  • 阵列部件访问

    我试图更好地理解数组 请原谅我的基本问题 因为我三周前刚刚打开我的第一本 php 书 我知道您可以使用 foreach 或 for 循环 检索键 值对 如下所示 stockprices array Google gt 800 Apple g
  • II 错误:应用程序代码隐藏=“Global.asax.cs”继承=“nadeem.MvcApplication”

    我正在尝试部署我的网络项目 但不断收到此错误 Line 1 我看了这个帖子 解析器错误 应用程序中的服务器错误 https stackoverflow com questions 11596352 line 1 application co
  • MySQL Regexp 是否支持 Unicode 匹配

    有谁知道Mysql的正则表达式是否支持unicode 我一直在做一些研究 大多数博客等似乎都表明存在问题或不受支持 我想知道是否最好使用 LIKE 进行 unicode 模式匹配 使用 regexp 进行 ASCII 增强模式匹配 我喜欢能
  • 具有非正则截距项的 Scikit-learn 岭回归

    scikit learn 岭回归是否在正则化项中包含截距系数 如果是 是否有办法在不正则化截距的情况下运行岭回归 假设我拟合岭回归 from sklearn import linear model mymodel linear model
  • RxJS forkJoin 未完成

    当我订阅 getAllSubModules 时 forkJoin 会毫无错误地执行所有这些可观察值 但不会完成 我知道 forkJoin 仅在其所有可观察值完成后才完成 但作为证据 我在控制台中看到 3 次 这确认一切都成功 因此所有可观察
  • jqGrid 过滤器工具栏仅显示单列的搜索运算符选择器

    我有包含许多列的 jqGrid 表 使用过滤器工具栏在网格中进行搜索 对于大多数人来说 搜索只是简单的默认运算符 对于一个日期时间列 我需要不同类型的运算符和日期选择器选择器 我已经添加了dataInit日期选择器初始化为searchopt
  • 如何将最后 N 次提交压缩在一起?

    如何将最后 N 次提交压缩为一次提交 你可以很容易地做到这一点 无需git rebase or git merge squash 在此示例中 我们将压缩最后 3 个提交 如果您想从头开始编写新的提交消息 这就足够了 git reset so
  • java/oops 中静态变量和动态变量有什么区别?

    请有人告诉我 oops 或 java 中 静态变量 和 普通变量 之间的区别 如果可能的话 还有它们的用法 考虑一个具有静态和动态变量的类 动态变量 创建类的实例时 每个对象都有自己的动态变量副本 对于每个对象 该变量的值都将不同 无论在该
  • 使用 Jest 模拟 jsonwebtoken 模块

    我尝试用玩笑来模拟 npm 模块 jsonwebtoken 的验证功能 该函数返回一个已解码的令牌 但我想将此函数的自定义返回传递给我的单元测试 我明确请求在继续请求之前检查访问令牌的有效性 但我想模拟令牌检查的时刻以直接返回用户值 并且轻
  • 使用过滤器或挂钩修改购物车总量

    好吧 我正在尝试编写一个过滤器或挂钩 它将根据购物车中的商品总数来修改购物车的总量 例如 如果购物车中有三件商品 我想从总订单中扣除二十美元 下面是我到目前为止的代码 非常感谢任何帮助 add filter woocommerce cart
  • CookieContainer 错误?

    我很困惑 CookieContainer 如何处理域 所以我创建了这个测试 此测试显示 cookieContainer 不会为 example com 返回任何 cookie 但根据 RFC 它应该返回至少 2 个 cookie 这不是一个
  • SunGridEngine、Condor、Torque 作为 PVM 的资源管理器

    有人知道哪个资源管理器适合 PVM 吗 或者我不应该使用 PVM 而是依赖 MPI 或其任何版本 例如 MPICH 2 还有其他更好的吗 使用 PVM 的主要原因是因为在我之前开始这个项目的人假设使用 PVM 然而 现在这个项目是我的了 他
  • 将内存流中的图像添加到 Excel 文档

    我在内存流中有一个图像 我想将其写入 MS Excel 文档 PIA 仅公开采用文件路径的 AddPicture 方法 有没有办法无需将图像写入光盘即可添加图片 MSDN http msdn microsoft com en us libr