Excel To Dataset 解决读取丢失数据

原创 2008年09月28日 14:01:00

这几天做的一个项目,遇到excel数据导入的问题,例excel中有一列“软件版本号”,数据格式为,

2.2

2.1

2.36

2.3.6.3

2.3.6.88/2.3.23/4.3

 

 

一行,当用读取到dataset时,dataset中最后二行的数据为空了,这时dataset的表中这列的数据类型为double

 

问题大概是这样。

解决方法,直接上代码更好

 public static DataSet ExcelToDataSet(string strFilePath)
    {
        string strConn;
        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
        OleDbConnection conn = new OleDbConnection(strConn);
        conn.Open();
        DataTable sheetNames = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });//获得Excel中的所有sheetname
        OleDbDataAdapter odda;
        DataSet ds = new DataSet();
        foreach (DataRow dr in sheetNames.Rows)
        {
            DataSet dsOne = new DataSet();
            odda = new OleDbDataAdapter("select * from [" + dr[2] + "]", strConn);//dr[2] is sheetname
            odda.Fill(dsOne);
          
            if (dsOne.Tables.Count > 0)
            {
                DataTable dt = dsOne.Tables[0].Copy();
                dt.TableName = dr[2].ToString();
                ds.Tables.Add(dt);
            }
        }
        conn.Close();
        return ds;
    }

,然后excel中对应列的第一行数据的单元格,双击,把光标移到最前,输入”'“,把这列的数据类型强制转换为字符类型,注意strConn 中加粗部分,开始做项目时没有加入,导致这个问题存在。

  "HDR=Yes;"   indicates   that   the   first   row   contains   columnnames,   not   data  
  "IMEX=1;"   tells   the   driver   to   always   read   "intermixed"   data   columns   as   text  

这个解释从csdn搜出来的,这里做总结,以备以后参考,希望有用。

 

 

将中DataSet的数据导出为EXCEL文件

/**////   /// 执行导出 ,请在项目中先引用Mircorsoft Excel library 11.0  ///   /// 要导出的DataSet  /// 要导出的文件名  priva...
  • antlxy
  • antlxy
  • 2005年05月25日 13:17
  • 2532

C# NPOI读取Excel数据

NPOI方式 NPOI 是 POI 项目的 .NET 版本。POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。使用 NPOI 你就可以在没有安装 Office 或...
  • luolei3344
  • luolei3344
  • 2018年01月12日 14:49
  • 115

将DataSet中的数据导出到Excel表中

    实例代码:    ///     /// 导出Excel数据    ///     ///     ///     ///     public void CreateExcel(DataSe...
  • gooddasenlin
  • gooddasenlin
  • 2007年07月20日 11:11
  • 730

Excel文件与DataSet之间的转化的探索与实现

.net操作Excel的支持库下载   http://115.com/file/c2hkh144#NOPI.zip 以前用过依赖于office的方法对Excel文件进行操作,在自己机器上...
  • pukuimin1226
  • pukuimin1226
  • 2012年06月22日 18:09
  • 3853

Excel转DataSet的一个例子

public static DataSet ExcelToDS(string Pathm,string TableName)        ...{            DataSet ds = n...
  • jinjazz
  • jinjazz
  • 2007年12月11日 23:43
  • 4091

DataSet读取数据用法

动软用的是DataSet我一般用的List 备忘!      BLL.CarSun cs = new Maticsoft.BLL.CarSun();          DataSet ds = new...
  • carlfan
  • carlfan
  • 2010年02月11日 13:44
  • 1182

DataSet导出到Excel比较完整的解决方案(一)--客户端生成文件(downmoon)

有一客户需求:1、要从SQL Server数据库导出并生成Excel ;2、用户下载对应的Excel并填写上传再导入到SQL server。 费了将近六个小时,故一定要把过程写下来,希望看到此文的朋友...
  • downmoon
  • downmoon
  • 2009年01月16日 15:46
  • 13039

将DataSet和Excel互相转换的一个类

using System;using System.Data;using System.Data.OleDb;using System.Windows.Forms;namespace ImportEx...
  • KOBE0208
  • KOBE0208
  • 2006年04月17日 17:26
  • 1431

怎么由DataSet将数据导入Excel?

        /**////         /// 将DataSet里所有数据导入Excel        /// 需要添加COM: Microsoft Excel Object Library ...
  • fangxinggood
  • fangxinggood
  • 2005年03月24日 19:43
  • 8158

C#导入Excel到DataSet(客户端无需安装Office)

static DataSet Parse(string fileName) { string connectionString = string.Format(...
  • soft2buy
  • soft2buy
  • 2014年11月18日 11:36
  • 1060
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Excel To Dataset 解决读取丢失数据
举报原因:
原因补充:

(最多只允许输入30个字)