c#操作excel写入和读取

8 篇文章 1 订阅

        生活中我们或多或少要接触excel,那么怎样将excel集成到程序呢?下面我将做一个小demo来实现。

        在c#中我们在Nuget包管理器中搜索NPOI,这是一个操作excel插件,它能够实现不需要借助office就可以生成excel文件,更轻便。

        首先我们需要了解一下excel的一些细节,

1.workbook:代表excel的工作簿

2.sheet:代表excel的工作表,一个工作簿包含多个工作表。

3.Columns:代表excel表格的列

4.cell:代表excel表格的行

一下链接我将NPOI包进行了封装,包含了一些基本的excel表的操作方法,包括对表格宽度的调整

https://download.csdn.net/download/weixin_42145499/20601186

使用的是由直接将链接内的类库引用即可。

下面的讲解都依据类库进行。

        首先我们需要建立一个实体类即model,命名为OrderExcelModel,其中设定订单id,订单号,订单金额,订单类型,以及订单来源等数据。其中还重写了tostring方法。

using Quickuse.Excel;
using System;
using System.Collections.Generic;
using System.Text;

namespace Quickuse.ConsoleApp
{
	public class OrderExcelModel
	{
		[TableColumn("订单主键Id")]
		public int Id { get; set; }
		[TableColumnAttribute("订单号")]
		public string OrderNumber { get; set; }
		[TableColumnAttribute("订单金额", "金额")]
		public decimal OrderAmount { get; set; }
		[TableColumnAttribute("订单类型")]
		public string OrderType { get; set; }
		[TableColumnAttribute("订单来源")]
		public int Source { get; set; }
        public override string ToString()
        {
			return Id + "\t" + OrderAmount + "\t" + OrderNumber + "\t" + OrderAmount + "\t" + OrderType + "\t" + Source + "\t";

		}
    }
}

其次我们通过流的方式将数据写入excel文件中,一共六千条数据。

  public static void TestExecl()
        {
            List<OrderExcelModel> list = new List<OrderExcelModel>();
            for (int i = 0; i < 6000; i++)
            {
                list.Add(new OrderExcelModel
                {
                    Id = 1,
                    OrderNumber = DateTime.Now.ToString("ACyyyyMMddHHmmssfff"),
                    OrderAmount = 888.88M,
                    OrderType = "电子商品",
                    Source = i
                });
            }
            using (MemoryStream ms = Workbook.Export(list, "快速应用"))
            {
                string dir = "../../../../../file/";
              
                using (FileStream fs = new FileStream(dir+"quickuse.xls", FileMode.Create))
                {
                    byte[] buff = ms.ToArray();
                    fs.Write(buff, 0, buff.Length);
                    fs.Close();
                    ms.Close();
                }
            }
  
        }

下面我们进行数据的读取。

 public static void testReadExcel(string path)
        {
            var filestream = File.OpenRead(path);
            var dataset = XWorkbook.Import(filestream);
            filestream.Close();
            filestream.Dispose();
            var table = dataset.Tables[0];
            var list2 = XWorkbook.ConvertToList<OrderExcelModel>(table);
            foreach (var d in list2)
            {
                Console.WriteLine(d.ToString());
            }
            Console.WriteLine("读取成功");
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值