none
用VSTO做一个EXCEL文档级开发的问题 RRS feed

  • 问题

  • 利用OLE可以把一个EXCEL文档当作数据源,安装自己的需要读取数据,示例如下,但是,如果用visual studio 2008 c# VSTO 写一个excel文档级的程序,数据源就是excel文档自身,从中读取数据的代码如何写,也就是说下面代码中strExcelFileName是当前打开的excel文档本身怎么办? 请高手指点
     
     
    public static DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)
    {
          string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strExcelFileName + ";Extended Properties=Excel 5.0;";
          string strExcel = string.Format("select * from [{0}$]", strSheetName);
          DataSet ds = new DataSet();
          using (OleDbConnection conn = new OleDbConnection(strConn))
          {
               conn.Open();
               OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, strConn);
               adapter.Fill(ds, strSheetName);
               conn.Close();
          }
          return ds.Tables[strSheetName];
    }
     
    2009年6月10日 6:38

答案

全部回复

  • 你好,

    即使是当前打开的excel文档,也是一样的写法,没什么不一样啊。
    难道你报什么错了吗?
    Microsoft Online Community Support
    2009年6月11日 1:56
  • 感谢版主回复

    因为这个程序就像VBA一样附在EXCEL文档上,所以文档的位置不确定,这样的话strExcelFileName(Excel文档路径)怎么表达?难道先要写代获得当前打开的Excel文档的路径?有其它更直接的办法吗?
    2009年6月11日 9:00
  • 把excel作为数据源可能是比较快的办法。
    “这个程序就像VBA一样附在EXCEL文档上”什么意思。是说像一个EXCEL的插件吗?
    无论是不是我觉得都可以获得文件的路径的。

    至于如何获得该文档的位置你可以参考下面的连接试试。


    http://blog.csdn.net/lingxyd_0/archive/2009/04/16/4085091.aspx
    Microsoft Online Community Support
    2009年6月11日 10:02
  • 如果使用X64位系统,程序会报错,是否考虑通用性。
    2009年11月21日 3:12