我现在在做一个程序能根据不同的要求自动删除Excel中的无用行,但是现在的问题是就是打不开那种通过程序导出来的excel,我试过自己新建测试的excel,可以通过运行,但是那种导出来的就是打不开,现在试过通过Application的方法,还有ADO.NET的方法,还有导入SQL Server的方法了,都没有通过。请问还有别的办法么???还有我发现程序导出的excel下面sheet1的那个位置是文字信息,每次查询时就是那个报错,所以在请问一下,如果可以那个地方怎么改?如果可以的话,把代码贴出来让我学习一下。
大家都帮着想想办法吧,谢谢!
上传一个excel(那种程序导出的),以供大家测试~~~~
http://download.csdn.net/source/1162971(不要资源分)
大家都帮着想想办法吧,谢谢!
上传一个excel(那种程序导出的),以供大家测试~~~~
http://download.csdn.net/source/1162971(不要资源分)
一般意思的EXCEL文件是指工作簿(WorkBook),你的这个文件是工作表(WorkSheet),
且是Excel 工作表2.1版本的
没办法用ADO.Net直接连接楼主可以先打开这个文件,然后选择文件->另存为,
保存类型选择为 Microsoft Office Excel 工作簿
然后再通过ado.net访问
另外,访问excel里工作表(sheet)时,工作表的名称一般要变通一下,就是在原工作表名的后面加$,然后用[]界定起来
例如原来工作表名为 abc,访问是使用[abc$]
下面是另存后你的文件通过ado.net访问的代码 string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Extended Properties=Excel 8.0;" +
"data source=E:\\皖A-A9445 121.XLS"; OleDbConnection conn = new OleDbConnection( connStr );
conn.Open(); DataTable dt= conn.GetOleDbSchemaTable( System.Data.OleDb.OleDbSchemaGuid.Tables, null );
// 查询语句
string sql = "SELECT * FROM [皖A-A9445 121$]"; DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter( sql,conn );
da.Fill( ds ); // 填充DataSet
dt = ds.Tables[0];
// 在这里对DataSet中的数据进行操作 // 输出,绑定数据
dataGridView1.DataSource = dt; conn.Close();
这句楼主可以删除,我用来测试获取表名称的
注意表名不要用那些奇怪的字符,也不要用中文开头,
有些sb英文OS不太识别。