一.使用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;
      }
   
    }

转载于:https://www.cnblogs.com/wwwzzg168/p/3572039.html

C#操作Excel(读取)相关推荐

  1. java excel读取操作,Java 操作 Excel (读取Excel2003 2007,Poi兑现)

    Java 操作 Excel (读取Excel2003 2007,Poi实现) 一. Apache POI 简介( http://poi.apache.org/) 使用Java程序读写Microsoft ...

  2. JS操作Excel读取和写入(模板操作)

    前一段时间一直在做报表,所以肯定会用到Excel的操作,但是在网上查阅资料有关JS操作excel较少,有的话,也都是老生常谈或很零碎的一些东西.本人是在实际项目中摸索出,JS读写Excel(模板)数据 ...

  3. java poi 操作 excel 读取本地Excel / 保存excel到本地 / url下载excel

    pom.xml 配置poi版本 <dependency><groupId>org.apache.poi</groupId><artifactId>poi ...

  4. python 操作Excel入门到进阶

    目录 openpyxl操作Excel 读取工作簿(公式) 保存工作簿 写入内容 表(sheet) 创建表 选择表(sheet) 查看表名 删除工作表 修改表名称 单元格(cell) 获取表格尺寸大小 ...

  5. python与excel做数据可视化-python操作Excel、读取CVS与数据可视化

    1. python操作Excel python操作Excel有多种module可以实现(xlrd.xlwt.xlutils.openpyxl.xlsxwriter),本文使用xlsxwriter这个m ...

  6. python3字典写入excel_python3:excel操作之读取数据并返回字典 + 写入的案例

    excel写入数据,使用openpyxl库 class WriteExcel: def __init__(self,path): self.path = path def write_excel(se ...

  7. fastexcel读取excel追加写入sheet页_python笔记52:python操作excel

    主要内容: 小目标:掌握excel模块 主要内容:excel相关模块,openpyxl安装使用 如果看完这篇文章,你还是弄不明excel相关操作: 你来找我,我保证不打你,我给你发100的大红包. 1 ...

  8. c语言从excal读取字符串,C语言操作EXCEL文件(读写)

    C语言操作EXCEL文件(读写) 本文主要介绍通过纯C语言进行EXCEL的读写操作:(修改时间2018.08.28,如果运行结果均是0,请看文章最后一节) C语言读操作 C语言写操作 在之前需要使用C ...

  9. hssfwork 导出excel 文件已损坏_C# NPOI 操作EXCEL文件的读取和导出

    在实际项目中有很多场景遇到需要操作EXCEL文件,而常用到的库就有NPOI:NPOI是开源的POI 项目的.NET版,POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目, ...

最新文章

  1. Android通过Chrome Inspect调试WebView
  2. 使用示例_使用 COMSOL 软件模拟不规则形状并构建几何模型示例
  3. IIS 支持 ajax 跨域
  4. 《中国人工智能学会通讯》——8.2 自然界中的鸽群导航行为
  5. 《剑指offer》第1~11题:刷题week1[C++题解]
  6. 一个不错的shell 脚本教程 入门级
  7. VTK:Filtering之TriangulateTerrainMap
  8. GAN生成对抗网络-SSGAN原理与基本实现-半监督学习GAN-08
  9. php switch goto,PHP goto语句用法实例
  10. awk教程入门与实例练习(二)
  11. jeecg扩展字段,非实体属性
  12. (转)Java 调用 C++ (Java 调用 dll)
  13. LRU算法的实现(STL+模拟)
  14. java之Calendar类
  15. ORacle异常:ORA-00980:同义词转换不再有效
  16. 一个能和企鹅一样飞的创意
  17. 数据安全管理软件-企业如何保护数据安全?
  18. 电报注册_更秘密的电报
  19. grafana+alertmanager 微信报警发送给不同告警人
  20. 世界顶级思维(必须收藏)

热门文章

  1. c# winform程序调用托管dll(c#的dll),使用添加引用和动态加载dll
  2. Linux环境 文件分割的方法
  3. Dockerfile 指令详解2
  4. NoSQL(1)之 Redis的五大数据类型使用方法的详细介绍
  5. 【教女朋友学网络系列1】之OSI与TCP/IP
  6. javascript字典中添加数组_如何在JavaScript中使用数组方法:Mutator方法
  7. ii 组合总和_40. 组合总和 II – 力扣(LeetCode)
  8. 图像缩放算法_opencv缩放算法
  9. salt-api配置
  10. 车主无忧:为什么放弃开源Kafka?