用C#将一个EXCEL导入到DATASET中,但是读出来的时候发现有些数据没有导入,不同的EXCEL情况也不一样
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C#将一个EXCEL导入到DATASET中,但是读出来的时候发现有些数据没有导入,不同的EXCEL情况也不一样相关的知识,希望对你有一定的参考价值。
用C#将一个EXCEL导入到DATASET中,但是读出来的时候发现有些数据没有导入,不同的EXCEL情况也不一样,有的EXCEL是纯数字没有导入进去,有的是纯字符没有导入进去,该怎么办
参考技术A 1.如果你的项目Framework3.0一下,推荐使用Office COM组件;2.如果你的项目Framework3.0以上,推荐使用OpenXml;
3.使用OleDB或第三方DLL也不失为有效的办法,但是都不太好控制,容易出现你上述的那种错误,前二种方法源自微软,所以处理excel数据文件比较靠谱;
根据以往的经验,Excel文件最好由开发人员提供,控制好Excel版本和内部模板,这样可以尽量减少不必要的麻烦。追问
我已经找到原因并解决了,给你也说一下吧
Excel驱动程序读取指定源中一定数量的行(默认情况下为 8 行)以推测每列的数据类型。如果推测出列可能包含混合数据类型(尤其是混合了文本数据的数值数据时),驱动程序将决定采用占多数的数据类型,并对包含其他类型数据的单元返回空值。(如果各种数据类型的数量相当,则采用数值类型。)
怎么转换可以用代码实现吗,因为EXCEL是不可以修改的
C# 将excel导入到DataGridView上 (可以对数据进行操作)
先拜大神!!!
RT求例子——求注释,还没达到看到代码就能知道每步作用的境界。
提前感谢咋个。
具体滴。。。
本回答被提问者和网友采纳 参考技术B public static DataTable ImportExcelToDataSet(string filePath)string strConn;
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;Imex=1'";
DataTable dt = new DataTable();
OleDbDataAdapter oada = new OleDbDataAdapter("select * from [message$]", strConn);
try
oada.Fill(dt);
catch (Exception ex)
throw new Exception("该Excel文件的工作表的名字设置为 message,以便获取数据" + ex.Message);
return dt;
这个就是吧excel到如到datatable中 然后你指定DataGridView的数据源是这个即可
默认情况下这个会吧excel第一行作为datatable的column,追问
测试可行,不过还有有问题要问你,那个在DataGridView中修改的数据怎么保存到excel中。。。
参考技术C NPOI 里面很详细了 我还真做过这个。。。追问亲,求程序
以上是关于用C#将一个EXCEL导入到DATASET中,但是读出来的时候发现有些数据没有导入,不同的EXCEL情况也不一样的主要内容,如果未能解决你的问题,请参考以下文章
C#用excel进行批量导入的时候,获取excel中的内容放在dataset中有个问题
C# 将excel导入到DataGridView上 (可以对数据进行操作)
C#程序,将数据从dataset导出到excel表格里的时间类型为啥显示成“#”号呢