Excel文件是表结构的还是不规则的?

解决方案 »

  1.   

    我给你写一段示例程序,参考这个写你自己的
    myExcel.Application.Workbooks.Open(filename,missing,missing,missing,missing,
    missing,missing,missing,missing,missing,missing,missing,missing); 
    myExcel.Visible=false;
    Excel.Worksheet worksheet=(Excel.Worksheet)myExcel.ActiveSheet;
    string location=Server.MapPath("Data")+"\\testtext.txt";

    FileStream OutStream=File.Create(location);
    StreamWriter sw=new StreamWriter(OutStream);
    string StringNum;
    Session.Contents.Add("StringNum1","");
    StringNum=worksheet.get_Range("c1","c1").Value2.ToString()+" ";
        StringNum+=worksheet.get_Range("c2","c2").Value2.ToString()+" ";
    StringNum+=worksheet.get_Range("e1","e1").Value2.ToString()+" ";
    StringNum+=worksheet.get_Range("e2","e2").Value2.ToString()+" ";
                myExcel.Application.Workbooks.Close();
    worksheet=null;
    myExcel.Application.Quit();
    myExcel.Quit();
    myExcel=null;
    sw.WriteLine(StringNum);

    sw.Flush();
    sw.Close();
      

  2.   

    在执行之前先找到EXCEL.OLB文件把它放进CS目录中再用.NET的工具TLBIMP EXCEL.OLB这样会出现三个DLL文件,然后PROJECT->ADD REFERENCE 选择EXCEL.DLL和OFFICE.DLL再然后USING EXCEL.DLL USING OFFICE.DLL 最后在WEB.CONFIG中加入
    <IDENTITY IMPERSONATE="TURE"/>
      

  3.   

    myExcel.Application.Workbooks.Open(filename,missing,missing,missing,missing,
    missing,missing,missing,missing,missing,missing,missing,missing); 
    myExcel.Visible=false;
    Excel.Worksheet worksheet=(Excel.Worksheet)myExcel.ActiveSheet;
    string location=Server.MapPath("Data")+"\\testtext.txt";

    FileStream OutStream=File.Create(location);
    StreamWriter sw=new StreamWriter(OutStream);
    string StringNum;
    Session.Contents.Add("StringNum1","");
    StringNum=worksheet.get_Range("c1","c1").Value2.ToString()+" ";
        StringNum+=worksheet.get_Range("c2","c2").Value2.ToString()+" ";
    StringNum+=worksheet.get_Range("e1","e1").Value2.ToString()+" ";
    StringNum+=worksheet.get_Range("e2","e2").Value2.ToString()+" ";
                myExcel.Application.Workbooks.Close();
    worksheet=null;
    myExcel.Application.Quit();
    myExcel.Quit();
    myExcel=null;
    sw.WriteLine(StringNum);

    sw.Flush();
    sw.Close();
      

  4.   

    如果是表结构的:
    public static readonly string CONNECT_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=$datasource$;Extended Properties=Excel 8.0"; public static DataSet ExecuteSelectCommand(string cmdText,string conString, CommandType cmdType, params OleDbParameter[] cmdParms)
    {
    OleDbConnection conn = new OleDbConnection(conString);
    OleDbCommand cmd = new OleDbCommand(cmdText,conn);
    OleDbDataAdapter adpt = new OleDbDataAdapter(); cmd.CommandType = cmdType; if(null != cmdParms)
    {
    foreach(OleDbParameter para in cmdParms)
    {
    if(null == para.Value)
    para.Value = DBNull.Value;
    cmd.Parameters.Add(para);
    }
    } adpt.SelectCommand = cmd; try
    {
    DataSet dataSet = new DataSet();
    adpt.Fill(dataSet);
    return dataSet;
    }
    catch
    {
    throw;
    }
    finally
    {
    if (conn.State == ConnectionState.Open)
    conn.Close();
    }
    }其中$datasource$是Excel文件的全路径名,sql查询语句(cmdText)中的表名就是sheet的名字,但是要这样写"SELECT * FROM [sheet1$]",其中sheet1就是sheet的名字。
    Excel2000生成的文件适用,Excel2003没有测试过。
      

  5.   

    引用Excel对象后,下面的代码可以执行:
    using System;
    using System.Data;
    using System.Reflection;
    static void Main(string[] args)
    {
    Excel.Application xApp=new Excel.ApplicationClass();
    xApp.Visible=true;

    Excel.Workbook xBook=xApp.Workbooks._Open(@"D:\Sample.xls",
    Missing.Value,Missing.Value,Missing.Value,Missing.Value
    ,Missing.Value,Missing.Value,Missing.Value,Missing.Value
    ,Missing.Value,Missing.Value,Missing.Value,Missing.Value);
    //xBook=xApp.Workbooks.Add(Missing.Value);
    Excel.Worksheet xSheet=(Excel.Worksheet)xBook.Sheets[1];
    //Excel.Worksheet xSheet=(Excel.Worksheet)xApp.ActiveSheet;

    Excel.Range rng1=xSheet.get_Range("A1",Type.Missing);
    Console.WriteLine(rng1.Value2);

    Excel.Range rng2=(Excel.Range)xSheet.Cells[3,1];
    Console.WriteLine(rng2.Value2);
    Excel.Range rng3=xSheet.get_Range("C6",Missing.Value);
    rng3.Value2="Hello";
    rng3.Interior.ColorIndex=6; //xBook.SaveAs(@"D:\CData.xls",Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value //,Excel.XlSaveAsAccessMode.xlNoChange,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);
    xBook.Save(); xSheet=null;
    //xBook.Close(Missing.Value,Missing.Value,Missing.Value);
    xBook=null;
    xApp.Quit();
    xApp=null;
    }
      

  6.   

    http://msdn.microsoft.com/library/en-us/odc_vsto2003_ta/html/ExcelObj.asp?frame=true
      

  7.   

    读写都没问题了.但字段中有个指.要求读到小数点后三位.比如1.000,但用rng2.Value2好像就变成1了.帮忙啊