C# 读写Excel实例

1:首先需要引用Microsoft.Office.Interop.Excel
Excel读写本实例是使用Office的组件:Microsoft.Office.Interop.Excel

首先需要引用office组件,如下图:
在这里插入图片描述
选择后,工程中引用就会出现组件。
2:读取Excel,将内容展示在窗体的DataGridView中。

     private void ReadFromExcelFile()
    {
        string filePath = System.IO.Directory.GetCurrentDirectory() + "\\Example.xlsx";
        Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
        Workbook workbook = excel.Workbooks.Open(filePath);
        Worksheet worksheet = workbook.Sheets[1];
        Range range = worksheet.UsedRange;
        int rowCount = range.Rows.Count;

        int colCount = range.Columns.Count;

        for (int i = 2; i <= rowCount; i++)
        {

            ExcelData readData = new ExcelData();
            Type type = readData.GetType();
            PropertyInfo[] property = type.GetProperties();

            for (int j = 1; j <= colCount; j++)
            {
                string cellValue = (range.Cells[i, j] as Range).Value.ToString();
                property[j - 1].SetValue(readData, cellValue, null);

            }
            ExcelDataList.Add(readData);
        }
        RefreshDgv();
        // 关闭Excel对象
        workbook.Close();
        excel.Quit();
    }

3:读取后可以将列表中内容保存到Excel文件中

 private void WriteToExcel()
    {
        string filePath = System.IO.Directory.GetCurrentDirectory() + "\\WriteExample.xlsx";

        Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
        excel.Visible = false;//是打开不可见

        Workbook workbook = excel.Workbooks.Add();
        Worksheet worksheet = workbook.Sheets[1];

        Type type = typeof(ExcelData);
        PropertyInfo[] property = type.GetProperties();
        int nColumn = property.Count();
        int nRow = ExcelDataList.Count();
        for (int j = 1; j <= nRow; j++)
        {
            ExcelData readData = ExcelDataList[j - 1];
            Type typeData = readData.GetType();
            PropertyInfo[] propertyData = typeData.GetProperties();
            for (int i = 1; i <= nColumn; i++)
            {
                worksheet.Cells[j, i] = propertyData[i - 1].GetValue(readData, null);
            }
        }
        excel.DisplayAlerts = false;
        workbook.SaveAs(filePath);
        workbook.Close();
        excel.Quit();

        MessageBox.Show("导出成功!");
    }

代码很简单,可以给新手一点启发。可以关注gzh 爱学习的兔八哥,hf消息 Excel读写,可以获得源代码
在这里插入图片描述

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习的兔八哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值