none
如何读取EXCEL存入SQL RRS feed

答案

  • 如果操作Excel对象可以得到每个Sheet的名字,这样能达到动态的效果,不过这就需要额外一些代码和新的程序集引用,这似乎有点太兴师动众。如果简单的话,建议使用一个文本框之类的,让用户把需要导入的工作表的名称用逗号分隔符填进来,然后你处理。

    基本上你可以在Excel里面录制一段更改工作表名称时的脚本,可以看到怎么设置的工作表名称,同样也就知道了怎么获取工作表名称。

     

    2008年4月3日 16:05
    版主

全部回复

  •  

    已经实现了,不过还是存在点问题
    为什么EXCEL文件里的Sheet1是中文就出错
    string excel = "select * from [Sheet1$]";
    2008年4月3日 10:53
  • 具体的错误提示是什么?

    2008年4月3日 14:07
    版主
  • dr.fill(ds,"table");中的"table"提示出错.

    实验了下好象是因为sheet1被重命名成中文导致的,但我处理的EXCEL文件大部分sheet1是中文的.
    请问有什么语句可以修改此错误吗

    2008年4月3日 15:06
  •  

    string con = ConnStr+FilePath+Extended;
                Conn.ConnectionString = con;
                Conn.Open();


                DataSet ds = new DataSet();

                string Excel = "select * from ["+"sheet1"+"$]";
                OleDbDataAdapter da= new OleDbDataAdapter(Excel, Conn);
                da.Fill(ds,"table");//这里出错了,.
                Conn.Close();
                gv.DataSource = ds;
                gv.DataMember = "table";

    读取sheet1时没错,但我把sheet1改成商品列表就出错了.
    2008年4月3日 15:33
  • 如果你把sheet1改叫“商品列表”,那么你的Sql语句就应该写成:select * from [商品列表$]

    2008年4月3日 15:38
    版主
  • 可否实现[商品列表$]这个值按照EXCEL的变化而变化?
    2008年4月3日 15:44
  • 如果操作Excel对象可以得到每个Sheet的名字,这样能达到动态的效果,不过这就需要额外一些代码和新的程序集引用,这似乎有点太兴师动众。如果简单的话,建议使用一个文本框之类的,让用户把需要导入的工作表的名称用逗号分隔符填进来,然后你处理。

    基本上你可以在Excel里面录制一段更改工作表名称时的脚本,可以看到怎么设置的工作表名称,同样也就知道了怎么获取工作表名称。

     

    2008年4月3日 16:05
    版主
  •  

    谢谢指教,不过我做这个程序主要的目的是学习.麻烦点更能学到东西
    2008年4月4日 0:55