using System;
using System.Reflection;namespace PointSoft
{
    public partial class ConnExcel
    {
        public void open(String path)
        {
            Excel.Application excel = new Excel.ApplicationClass();
            try
            {
                Excel.Workbook xBook = excel.Workbooks._Open(@path,
                     Missing.Value, Missing.Value, Missing.Value, Missing.Value
                     , Missing.Value, Missing.Value, Missing.Value, Missing.Value
                     , Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                excel.Visible = true;
                Excel.Worksheet sheet = (Excel.Worksheet)excel.ActiveSheet;// 获取当前工作表  
                Excel.Range range = (Excel.Range)sheet.Cells;
                //我怎么获得一个工作表中单元格的值呢?
                //怎么获得一个工作表中总共的行数和列数呢?
            }
            catch (Exception ex)
            {
               System.Windows.Forms.MessageBox.Show(ex.Message);
            }
            finally
            {
                excel.Quit();
                excel = null;
            }
        }
    }
}
 如注释里说的,谢谢大家帮帮忙!

解决方案 »

  1.   

               int c = 1;
                if (Global.xlSheet.UsedRange.Rows.Count == 1) //写标头
                {
                    Global.xlSheet.Cells[1, 1] = "Test 1";//给单元格赋值
                    Global.xlSheet.Cells[1, 2] = "Test 2";
                    Global.xlSheet.Cells[1, 3] = "Test 3";
                    Global.xlSheet.Cells[1, 4] = "时间";
                }
                c = Global.xlSheet.UsedRange.Rows.Count + 1;//行数,列数类似
                Global.xlSheet.Cells[c, 1] = "Test Header 1";
                Global.xlSheet.Cells[c, 2] = "Test Header 2";
                Global.xlSheet.Cells[c, 3] = "Test Header 3";
                Global.xlSheet.Cells[c, 4] = System.DateTime.Now;
                Global.xlSheet.Cells[c + 1, 1] = "Test Data 1";
                Global.xlSheet.Cells[c + 1, 2] = "Test Data 2";
                Global.xlSheet.Cells[c + 1, 3] = "Test Data 3";
                Global.xlSheet.Cells[c + 1, 4] = System.DateTime.Now;
                Global.xlSheet.Columns.EntireColumn.AutoFit();
      

  2.   

    Global是怎么啊?
    usedRange有用!
    OK啦!谢谢啦!  你做过这方面的吗?
      

  3.   

    但是我怎么获得一个工作表中单元格的值呢?
    System.Windows.Forms.MessageBox.Show(Convert.ToString(sheet.UsedRange.Cells[1,1]));
    打印第一行第一列这个单元格的值怎么不行啊!
      

  4.   

    读取Excel工作薄选定区域中的数据 
            首先在工作簿中,左键拖拽选取要定义成为表的区域,从菜单中选择‘插入’->‘名称’->‘定义’,在‘定义名称’对话框出现中键入表的名字:“TestTable”,OK。 
            那么SQL语句应为:SELECT * FROM TestTable。 
    代码示例: 
    public void ReadExcel(string sExcelFile) 

    string sConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + sExcelFile + ";Extended Properties=Excel 8.0"; 
    OleDbConnection connection = new OleDbConnection(sConnectionString); 
    OleDbDataAdapter adp = new OleDbDataAdapter("SELECT * FROM TestTable", connection); 
    DataSet ds = new DataSet(); 
    adp.Fill(ds,"Book1"); 
    grd_Excel.DataSource = ds.Tables["Book1"].DefaultView; 
    grd_Excel.DataBind(); 
      

  5.   

    string s=sheet.get_Range("A1",Missing.Value).Value2.ToString();
    sheet=(Excel._Worksheet)book.Worksheets[1];                
    int i=sheet.Rows.Count;
    DataSet ds=new DataSet();
    using(OleDbConnection Conn = new OleDbConnection(""))
    {
    string Sql = " SELECT * FROM Sheet1";
    OleDbCommand dbCommand = new OleDbCommand();
    sourceConn.Open();
    OleDbDataAdapter oleDA = new OleDbDataAdapter(Sql,Conn);
    oleDA.Fill(ds);
    Conn.Close();
    }
      

  6.   

    guan zhi qie xue zhi