图片中,黄色的那个单元格的数据 Y0901 ,绑到DataGridView后是空的,其它数据则没问题;
把 Y 去掉就没问题,而把 Y 改为其它字母也是获取不到;
我试了用SQL Server 的导入,数据也是空的;
改Excel的单元格为“文字”也不行;
這種問題該怎么处理呢?
謝謝!

解决方案 »

  1.   

    你先看看那个excel单元格的数据来源,是不是公式来的?
      

  2.   

    之前遇到类似的情况 是单元格数据类型不一致的关系
    全部默认为字符串就可以了修改方法为
    "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + Path + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
    后面要有HDR=Yes;IMEX=1
      

  3.   


     //從Excel獲取數據
            private void btnSource_Click(object sender, EventArgs e)
            {
                try
                {
                    if (ofd.ShowDialog() != DialogResult.OK) return;                this.Cursor = Cursors.WaitCursor;                string strFilePath = ofd.FileName;                string strExcelProvider = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                                                          "Extended Properties=Excel 8.0;" +
                                                          "data source=" + strFilePath;                DataTable dtAll = new DataTable();                using (OleDbConnection oleConn = new OleDbConnection(strExcelProvider))
                    {
                        //使用Adapter的Update方法,所以dbo.TA_ScheduleImport設置了自動編號                    //注意:Excel列名、頁名
                        StringBuilder strBuilder = new StringBuilder();
                        strBuilder.Append("SELECT [ModelCode],[LotNo],[Re],");
                        strBuilder.Append("[P28],[P29],[P30],[P31],");
                        strBuilder.Append("[C1],[C2],[C3],[C4],[C5],[C6],[C7],[C8],[C9],[C10],[C11],[C12],[C13],[C14],[C15],");
                        strBuilder.Append("[C16],[C17],[C18],[C19],[C20],[C21],[C22],[C23],[C24],[C25],[C26],[C27],[C28],[C29],[C30],[C31] ");
                        strBuilder.Append(" from [Schedule$]");                    string strSql = strBuilder.ToString();                    OleDbDataAdapter oleAdapter = new OleDbDataAdapter(strSql, oleConn);                    oleAdapter.Fill(dtAll);
                    }                dgv.DataSource = dtAll;                                if (dtAll.Rows.Count == 0)
                    {
                        this.Cursor = Cursors.Default;                    btnSave.Tag = null;                    MessageBox.Show("Excel文件[Schedule]頁沒數據,請檢查!", "提示");                    return;
                    }                btnSave.Tag = "NotYet";            }
                catch (OleDbException ex)
                {
                    MessageBox.Show(ex.Message, "異常");
                }
                finally
                {
                    this.Cursor = Cursors.Default;
                }
            }
      

  4.   


    //string path=Server.MapPath(@"~\xls\test.xls");//指定路径
            string path = this.File1.Value;//获取选择的路径
            String strConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0\"", path);
            OleDbConnection oleDbConnection = new OleDbConnection(strConnectionString);
            oleDbConnection.Open();
            DataSet ds = new DataSet();
            OleDbDataAdapter oleDbDataAdapter = new OleDbDataAdapter("Select * from [Sheet1$]", oleDbConnection);
            oleDbDataAdapter.Fill(ds, "excel_data");
            oleDbConnection.Close();
            this.GridView1.DataSource = ds.Tables["excel_data"];
            this.GridView1.DataBind();参考: 1.简单的Excel导入到数据绑定控件
    2.关于EXCEL导入数据库的功能
      

  5.   


    提示“找不到可安装的 isam',怎麼處理呀?
      

  6.   


    ”找不到可安装的 isam“的問題是連接字符的問題,先寫data source,再寫Extended Properties。但數據還是空的
      

  7.   

    搞定,還是按7樓的寫法,隻是在Excel的第一行單元格的數據加單引號