C#:添加COM引用方式读取Excel

新建Win32 Console Application (C#),添加COM引用Microsoft Office Excel 15.0 Object Library (Office 2013对应版本15.0)

完整示例代码如下

using System;
using Microsoft.Office; // Add new reference

namespace ExcelReader
{
    class Program
    {
        static void Main(string[] args)
        {
            ExcelReader er = new ExcelReader("F:/data.xls");
            for(int i=1;i<=er.RowCount;++i)
            {
                for(int j=1;j<=er.ColCount;++j)
                {
                    Console.Write("{0}\t",er.GetCellContent(i,j));
                }
                Console.WriteLine();
            }
            er.Close(); // Exit Excel process and release resources
            Console.ReadKey();
        }
    }

    class ExcelReader
    {
        private Microsoft.Office.Interop.Excel._Application xlsApp = null;
        private Microsoft.Office.Interop.Excel.Sheets sheets = null;
        private Microsoft.Office.Interop.Excel.Worksheet workSheet = null;
        private Microsoft.Office.Interop.Excel.Workbook workBook = null;
        public int RowCount { get; set; }
        public int ColCount { get; set; }
		
        public ExcelReader(string strXlsPath)
        {
            xlsApp = new Microsoft.Office.Interop.Excel.Application();
            object omv = System.Reflection.Missing.Value;
            workBook = xlsApp.Workbooks.Open(strXlsPath, omv, omv, omv, omv, omv, omv, omv, omv, omv, omv, omv, omv, omv, omv);
            sheets = workBook.Worksheets;
            workSheet = (Microsoft.Office.Interop.Excel.Worksheet)(sheets.get_Item(1));
            RowCount=workSheet.UsedRange.Rows.Count;
            ColCount = workSheet.UsedRange.Columns.Count;
        }

        public void Close()
        {
            if (xlsApp != null)
            {
                if (workBook != null)
                {
                        if (workSheet != null)
                        {
                            System.Runtime.InteropServices.Marshal.ReleaseComObject(workSheet);
                            workSheet = null;
                        }
                        if (sheets != null)
                        {
                            System.Runtime.InteropServices.Marshal.ReleaseComObject(sheets);
                            sheets = null;
                        }
                        workBook.Close(false, Type.Missing, Type.Missing);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(workBook);
                        workBook = null;
                    }
                }
                xlsApp.Application.Workbooks.Close();
                xlsApp.Quit();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(xlsApp);
                xlsApp = null;
                GC.Collect();
        }

        public dynamic GetCellContent(int row,int col)
        {
            Microsoft.Office.Interop.Excel.Range rng = workSheet.Cells[row, col];
            return rng.Text;
        }
    }
    
}


注意使用完毕后调用Close方法以退出Excel进程。
运行结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值