小弟应用一位老大的类(http://blog.mvpcn.net/mic_lee2000/archive/2005/03/06/10516.aspx)
,从EXCEL中取数据,发现数据出现丢失的情况,
当列中全数字组成的单元格占大多数时,就会丢掉含有字母的单元格,反之则丢掉全数字组成的单元格。请问各位老大有没有办法??/// <summary>
        /// 根据EXCEL文件名,返回连接字符串
        /// </summary>
        /// <param name="FileName">Excel文件名</param>
        /// <returns>连接字符串</returns>
private static string GetConnectionString(string FileName)
{

return 
@"Provider=Microsoft.Jet.OLEDB.4.0;" + 
@"Data Source=" + FileName  + ";" + 
@"Extended Properties=" + Convert.ToChar(34).ToString() + 
@"Excel 8.0;"+ "Imex=2;HDR=No;" + Convert.ToChar(34).ToString(); 

}
以下是取数据的语句。
this.m_CommSelect.CommandText = "SELECT * FROM [" +SheetName+"$" + "]";

解决方案 »

  1.   

    private void Button1_Click(object sender, System.EventArgs e)
    {
    string excelFilePath=@"D:\Book1.xls";
    Excel.Application myExcel=new Excel.ApplicationClass( ) ;
    object oMissing = System.Reflection.Missing.Value ;
    myExcel.Application.Workbooks.Open(excelFilePath,oMissing,oMissing,oMissing,oMissing,oMissing, oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing) ;
    Excel.Workbook myBook = myExcel.Workbooks[1] ;
    Excel.Worksheet mySheet = (Excel.Worksheet)myBook.Worksheets[1] ;
    System.Data.DataTable dt=new System.Data.DataTable("rycjsb");
    dt.Columns.Add("F1", System.Type.GetType("System.String"));
    dt.Columns.Add("F2", System.Type.GetType("System.String"));
    dt.Columns.Add("F3", System.Type.GetType("System.String"));
    dt.Columns.Add("F4", System.Type.GetType("System.String"));
    dt.Columns.Add("F5", System.Type.GetType("System.String"));
    DataSet myDs = new DataSet();
    myDs.Tables.Add(dt);
    DataRow myRow;
    myDs.Clear();
    for( int i = 2 ; i <= 4 ; i ++ )
    {
    myRow = myDs.Tables["rycjsb"].NewRow();
    for( int j = 1 ; j <= 5 ; j ++ )
    {

    //Excel.Range r = mySheet.get_Range(mySheet.Cells[i,j],mySheet.Cells[i,j]);
    Excel.Range r=(Excel.Range)mySheet.Cells[i,j];
    string strValue=r.Text.ToString();//    ((Excel.Range)r[i,j]).Cells.Text.ToString();
    string aa=strValue;
    string columnname="F"+j.ToString();
    myRow[columnname]=strValue;
    }
    myDs.Tables["rycjsb"].Rows.Add(myRow);
    }

    DataGrid1.DataSource=myDs.Tables["rycjsb"].DefaultView;
    DataGrid1.DataBind(); }
      

  2.   

    <body>
    <form id=Form1 method=post runat="server"><asp:button id=Button1 runat="server" Text="Button"></asp:Button><asp:datagrid id=DataGrid1 runat="server"></asp:DataGrid></FORM>
    </body>