private void ExportExcel()
{
Microsoft.Office.Interop.Excel.Application myExcel=new Microsoft.Office.Interop.Excel.ApplicationClass();
Microsoft.Office.Interop.Excel.Worksheet mySheet=new Microsoft.Office.Interop.Excel.WorksheetClass();
myExcel.Visible=true;
myExcel.Workbooks.Add(true);((Microsoft.Office.Interop.Excel.Worksheet)myExcel.Sheets[1]).Name=this.txtTabName.Text;
mySheet=((Microsoft.Office.Interop.Excel.Worksheet)myExcel.Sheets[this.txtTabName.Text]);
Microsoft.Office.Interop.Excel.Range aa;mySheet.Cells[1,1]="表名称:"+this.txtTabName.Text;
mySheet.Cells[2,1]="描述:"+this.txtTabTitle.Text;

for(int i=1;i<=this.c1FlexGrid1.Cols.Count-1;i++)
{
if(this.c1FlexGrid1.Cols[i].Visible==true)
{
mySheet.Cells[3,i]=this.c1FlexGrid1.Cols[i].Caption.ToString();
}
}
for(int i=1;i<=this.c1FlexGrid1.Rows.Count-1;i++)
{
for(int j=1;j<=this.c1FlexGrid1.Cols.Count-1;j++)
{
if(this.c1FlexGrid1.Cols[j].Visible==true)
{
mySheet.Cells[i+3,j]=this.c1FlexGrid1[i,j].ToString();
}
}
}

}
//从for开始是导入 EXCEL 的语句 . . . 研究一下吧 . . .

解决方案 »

  1.   

    直接打开EXCEL,然后循环读取判断
    //设置空值
    object objMissing=System.Reflection.Missing.Value;
    //打开excel文件
      my=new Excel.ApplicationClass();
             
    my.Visible=true;
    //打开工作簿
    mybook=my.Workbooks.Open(path1.Trim(),objMissing,objMissing, objMissing, 
    objMissing, objMissing, objMissing, 
    objMissing, objMissing, objMissing, 
    objMissing, objMissing, objMissing);  mysheet=(Excel.Worksheet)mybook.Worksheets.get_Item(1);
    for(int i=1;i<=row;i++)
    { System.Windows.Forms.Application.DoEvents();

    for(int j=1;j<=col ;j++)
    {

    if(((Excel.Range)mysheet.Cells[i,j]).Text.ToString().Length>0)//判断是否被合并
    {
    if(((Excel.Range)mysheet.Cells[i,j]).Value.ToString().IndexOf("字符"].Trim())>=0)
    {..
    }
    }



    }
    }
      

  2.   

    我也遇到这样的事了,后来,我的解决办法是在第一行前面加一个空行,哈哈
    还有一个问题也许你能遇到,
    就是读数字是为“”;
    比如 678945 ——>'678945
    就ok 了