zoukankan      html  css  js  c++  java
  • 读写Excel文件

    先要引用这些命名空间. 不明白的地方可以在msdn中找到.

    using System.Data.OleDb;
    using Excel;
    using System.Reflection; // For Missing.Value and BindingFlags

    /// <summary>
      /// 读取Excel表格
      /// </summary>
      /// <param name="path">excel文件全名</param>
      /// <param name="id">放到DataSet中的表名</param>
      public void readexcel(string path,string id)
      {
       try
       {
        string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " +
         path + " ; Extended Properties=Excel 8.0" ;
        OleDbConnection myConn = new OleDbConnection ( strCon ) ;
        string strCom = " SELECT * FROM [sheet1$]";
        myConn.Open ( ) ;
        OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ;
        myCommand.Fill (this.dataSet1,id) ;
        myConn.Close ( ) ;
        int ii=this.dataSet1.Tables[id].Rows.Count;
        }
       catch(System.Exception op)
       {
        MessageBox.Show("发生错误 "+op.Message);
       }
      } 

         首先将excel.exe copy 到 ..\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin目录下,利用.net 中带的工具在命令提示符下执行tlbimp excel.exe.这样就不会因为你的Excel是xp或2000的不同要去找不同的*.olb文件,还有一点就是因为在2000以后的版本中没有了excel9.olb这个文件了。通过执行tlbimp excel.exe后我们会得到excel.dll文件。在工程中引用这个文件就可以了.

    /// <summary>
      /// 写入并保存Excel文件
      /// </summary>
      /// <param name="path">保存文件的全文件名</param>
      /// <param name="id">DataSet中的表名</param>
      private void wexcel2(string path ,string id)
      {
       int count = this.dataSet1.Tables[id].Rows.Count;
       int column = this.dataSet1.Tables[id].Columns.Count;

       Excel.ApplicationClass excelApp = new Excel.ApplicationClass();
       // Make Excel Visible
       excelApp.Visible = false;
       Excel.Workbook workbook =
        excelApp.Workbooks.Open(fileName,
        Type.Missing, Type.Missing, Type.Missing, Type.Missing,
        Type.Missing, Type.Missing, Type.Missing, Type.Missing,
        Type.Missing, Type.Missing, Type.Missing, Type.Missing,
        Type.Missing, Type.Missing);
      
       excelApp.Cells[1,1] = this.dataSet1.Tables[id].Rows[xx].ItemArray[0];

    //.................................

    //添加写表的语句.xx,yy,x,y这几个是示意性的变量.
       excelApp.Cells[x,y] = this.dataSet1.Tables[id].Rows[yy].ItemArray[5];
         
       string tname = "c:\\test.xls";
       workbook.SaveAs(tname,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,
        Excel.XlSaveAsAccessMode.xlNoChange,
        Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);
       
       try
       {
        workbook.Saved = true;
        excelApp.UserControl = false;
        excelApp.Quit();
       }
       catch (System.Exception op)//(COMException)
       {
        MessageBox.Show(op.Message +" \n User closed Excel manually, so we don't have to do that");
       }    
      }

  • 相关阅读:
    快学Scala-第八章 继承
    快学scala-第七章 包和引入
    快学Scala-第六章 对象
    快学Scala-第五章 类
    快学Scala-第四章 映射和元组
    快学Scala-第三章 数组相关操作
    快学Scala-第二章 控制结构和函数
    快学Scala-第一章 基础
    ReLu(Rectified Linear Units)激活函数
    软件工程的发展史
  • 原文地址:https://www.cnblogs.com/dreign/p/379211.html
Copyright © 2011-2022 走看看