.net操作office示例

上班时间,写着写着代码,想还是应该把前几天做的.net操作office的demo上传上来,当着个备份也好。

.net 的office操作使用的地方还是蛮多的,不过有时候也比较麻烦,前几天正好比较没事,就学习了下Aspose这套组件的用法,顺便做了个简单的操作excel的demo,主要的点还是在读取excel中的图片,并将该图片在哪个单元格中识别出来。

废话不宜太多,上代码先:

private void ReadExcelData()
  {
   string filePath = Server.MapPath(@"test.xls");

   if (!File.Exists(filePath))
   {
    Response.Write("不存在测试文件:test.xls");
    Response.End();
   }

   Workbook wb = new Workbook();
   wb.Open(filePath);


   if (wb.Worksheets.Count > 0)
   {
    Worksheet ws = wb.Worksheets[0];

    System.Data.DataTable dt = new System.Data.DataTable();

    for (int i = 0 ; i < ws.Cells.Columns.Count ; i++)
    {
     dt.Columns.Add(i.ToString());
    }

    Pictures pics = ws.Pictures;
    List<Picture> lstPic = new List<Picture>();

    for (int k = 0 ; k < pics.Count ; k++)
    {
     lstPic.Add(pics[k]);
    }

    for (int i = 0 ; i < ws.Cells.Rows.Count ; i++)
    {
     List<string> lstRow = new List<string>();

     for (int j = 0 ; j < ws.Cells.Columns.Count ; j++)
     {
      lstRow.Add(ws.Cells[i , j].StringValue);

      List<Picture> lstP = lstPic.Where(o => o.UpperLeftRow == i && o.UpperLeftColumn == j).ToList();

      for (int k = 0 ; k < lstP.Count ; k++)
      {
       System.Drawing.Image img = System.Drawing.Image.FromStream(new MemoryStream(lstP[k].Data));
       img.Save(string.Format("{0}\\{1}_{2}_{3}.jpg" , "E:\\Project\\ExcelPicDemo\\ExcelPicDemo\\Img" , i.ToString() , j.ToString() , k.ToString()));
       img.Dispose();

       lstRow[j] = lstRow[k].ToString() + string.Format("    {0}/{1}_{2}_{3}.jpg    " , "Img" , i.ToString() , j.ToString() , k.ToString());

      }
     }

     dt.Rows.Add(lstRow.ToArray());
    }

    this.gdvList.DataSource = dt;
    this.gdvList.DataBind();
   }
   else
   {
    Response.Write("文档中不存在任何工作表。");
    Response.End();
   }
  }
 }

重点是靠图片的UpperLeftRow ,UpperLeftColumn 这两个属性来判定它属于哪个单元格了。其他的没啥好说的。

最后上demo完整代码,和aspose破解组件。

Demo下载  Aspose组件破解下载




[本日志由 随风 于 2009-11-04 10:37 AM 编辑]
文章来自: 本站原创
引用通告地址: http://www.fenglog.com/blog/trackback.asp?tbID=412
Tags: aspose office Excel word .Net
评论: 0 | 引用: 0 | 查看次数: 492
发表评论
昵 称:
密 码: 游客发言不需要密码.
验证码: 验证码
内 容:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 关闭 | [img]标签 关闭