c#如何從Excel中讀取圖片

andy_wanhl 2012-09-29 04:28:22
Excel.Shape s = sheet.Shapes.Item(row - StartRow + 1) as Excel.Shape;
這行代碼可以讀取到Excel中的圖片,

然後
s.CopyPicture(Appearance.Button, Excel.XlCopyPictureFormat.xlBitmap); //COPY到内存。
可以運行過去,

再之後的
IDataObject iData = Clipboard.GetDataObject();
卻總讀出為null,即iData=null

需求:需要讀出Excel中的圖片,將圖片轉化成二進制後存入數據庫。
現在的思路:如果已經讀出Excel.Shape,那麼能否直接將這個對象轉化成二進制。

還是有其他的更好的思路。
求解決。
...全文
302 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cherrygao1978 2013-01-02
  • 打赏
  • 举报
回复
答案是什么,期待了解
andy_wanhl 2012-10-09
  • 打赏
  • 举报
回复
可以結貼了,答案已經有了
bigeyescat 2012-10-09
  • 打赏
  • 举报
回复
是什么问题?没送到值到粘贴板里?
andy_wanhl 2012-09-29
  • 打赏
  • 举报
回复
以下是代碼: iData總取不到值,不知道問題出現在哪裡.
string exclePath = @"D:\test.xls";
int StartRow = 1; //读的起始行

Excel.Application excel = new Excel.Application();//引用Excel对象
Excel.Workbook workbook = excel.Workbooks.Add(exclePath);
excel.UserControl = true;
System.Text.StringBuilder sb = new System.Text.StringBuilder();
excel.Visible = false;
for (int i = 0; i < workbook.Worksheets.Count; i++)//循环取所有的Sheet.
{
Excel.Worksheet sheet = workbook.Worksheets.get_Item(i + 1) as Excel.Worksheet;//从1开始.
for (int row = StartRow; row <= sheet.UsedRange.Rows.Count; row++)
{
//取存图片;
if (sheet.Shapes.Count > row - StartRow)
{
Excel.Shape s = sheet.Shapes.Item(row - StartRow + 1) as Excel.Shape;

s.CopyPicture(Appearance.Button,Excel.XlCopyPictureFormat.xlBitmap); //COPY到内存。
IDataObject iData = Clipboard.GetDataObject();
}
workbook.Close(false, null, null);
excel.Quit();

110,618

社区成员

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

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

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