c#读取EXCEL图片

yanchangshan 2013-09-27 09:05:22
问个C#读取excel(2007)图片的问题
请问用NPOI怎么一个一个读取出来
其中一种方法是不用NPOI

private string exclePath = @"E:\111.xls";
private int StartRow = 2; //读的起始行
private void button1_Click(object sender, System.EventArgs e)
{
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++)
{
//取单元格值;
for (int col = 1; col <= sheet.UsedRange.Columns.Count; col++)
{
Excel.Range range =sheet.Cells[row, col] as Excel.Range;
sb.Append("," + col.ToString() + ":" + range.Text);
}
sb.Append(System.Environment.NewLine);
//取存图片;
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();
if (iData.GetDataPresent(DataFormats.Bitmap))
{
pictureBox1.Image = (Bitmap)iData.GetData(DataFormats.Bitmap); //从内存取值;
pictureBox1.Image.Save(string.Format(@"D:\{0}.jpg", row)); //保存。
}
else
{
pictureBox1.Image = null;
}
}
}
}
workbook.Close(false,null,null);
excel.Quit();
}
...全文
298 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanchangshan 2013-09-27
  • 打赏
  • 举报
回复
谢谢 有这方面经验的人 帮忙说说
Eleve 2013-09-27
  • 打赏
  • 举报
回复
帮忙顶了,这方面只处理过EXCEL cell里的值,但是没有处理过图片的经验
yanchangshan 2013-09-27
  • 打赏
  • 举报
回复
但是用这种方法有个问题就是 如果EXCEL图片很小的话比如就在一个单元格里面 我读出来保存之后就很小,我再显示的时候就图片就很模糊 但是我在原始的EXCEL里面把图片放大根本就不模糊 大家或者能不能有方法用代码先操作EXCEL把所有图片调整大 再用上面的代码就没有问题

110,502

社区成员

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

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

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