zoukankan      html  css  js  c++  java
  • C#操作Excel(读取)

    一.使用OleDb,这个法子好像不大好使.容易读错.
    引用System.Data.OleDb;

        /// <summary>
            
    /// 返回Excel数据源
            
    /// </summary>
            
    /// <param name="filename">文件路径</param>
            
    /// <returns></returns>

        static public DataSet ExcelToDataSet(string filename)
        
    {
            DataSet ds;
            
    string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                            
    "Extended Properties=Excel 8.0;" +
                            
    "data source=" + filename;
            OleDbConnection myConn 
    = new OleDbConnection(strCon);
            
    string strCom = " SELECT * FROM [Sheet1$]";
            myConn.Open();
            OleDbDataAdapter myCommand 
    = new OleDbDataAdapter(strCom, myConn);
            ds 
    = new DataSet();
            myCommand.Fill(ds);
            myConn.Close();
            
    return ds;
        }

    二.使用com.
    导入Microsoft.Excel
    使用命名空间
    using Excel= Microsoft.Office.Interop.Excel;
    using System.Diagnostics;
    public  class ExcelHelper
        
    {
          
    private Excel._Application excelApp;
          
    private string fileName=string.Empty;
          
    private Excel.WorkbookClass wbclass;
          
    public ExcelHelper(string _filename)
          
    {
              excelApp 
    = new Excel.Application();
              
    object   objOpt   =   System.Reflection.Missing.Value;
              wbclass 
    = (Excel.WorkbookClass)excelApp.Workbooks.Open(_filename, objOpt, false, objOpt, objOpt, objOpt, true, objOpt, objOpt, true, objOpt, objOpt, objOpt, objOpt, objOpt);
          }

          
    /// <summary>
          
    /// 所有sheet的名称列表
          
    /// </summary>
          
    /// <returns></returns>

          public List<string> GetSheetNames()
          
    {
              List
    <string> list = new List<string>();
              Excel.Sheets sheets 
    = wbclass.Worksheets;
              
    string sheetNams = string.Empty;
              
    foreach (Excel.Worksheet sheet in sheets)
              
    {
                list.Add(sheet.Name);
              }

              
    return list;
          }

          
    public Excel.Worksheet GetWorksheetByName(string name)
          
    {
              Excel.Worksheet sheet
    =null;
              Excel.Sheets sheets
    = wbclass.Worksheets;
              
    foreach (Excel.Worksheet s in sheets)
              
    {
                  
    if (s.Name == name)
                  
    {
                      sheet 
    = s;
                      
    break;
                  }

              }

              
    return sheet;
          }

          
    /// <summary>
          
    /// 
          
    /// </summary>
          
    /// <param name="sheetName">sheet名称</param>
          
    /// <returns></returns>

          public Array GetContent(string sheetName)
          
    {
              Excel.Worksheet sheet 
    = GetWorksheetByName(sheetName);
              
    //获取A1 到AM24范围的单元格
              Excel.Range rang = sheet.get_Range("A1""AM24");
              
    //读一个单元格内容
              
    //sheet.get_Range("A1", Type.Missing);
            
    //不为空的区域,列,行数目
           
    //   int l = sheet.UsedRange.Columns.Count;
             
    // int w = sheet.UsedRange.Rows.Count;
            
    //  object[,] dell = sheet.UsedRange.get_Value(Missing.Value) as object[,];
              System.Array values = (Array)rang.Cells.Value2;
              
    return values;
          }


          
    public void Close()
          
    {
              excelApp.Quit();
              excelApp 
    = null;
          }

       
        }

    其他链接:
    创建、打开、读取、写入、保存的一般性代码
    告别ASP.NET操作EXCEL的烦恼(总结篇)
  • 相关阅读:
    SQL Server创建索引的技巧分析
    SQL Server创建索引
    kmp算法的应用
    相交环的面积
    Rebranding
    Olympiad
    找新朋友
    卡特兰数
    越狱
    Wolf and Rabbit
  • 原文地址:https://www.cnblogs.com/solo/p/1152802.html
Copyright © 2011-2022 走看看