简介

Spire.XLS for .NET 是一款专业的 .NET Excel 组件, 它可以用在各种 .NET 框架中,包括 ASP.NET 和 Windows Forms 等相关的 .NET 应用程序。Spire.XLS for .NET 提供了一个对象模型 Excel API,使开发人员可以快速地在 .NET 平台上完成对 Excel 的各种编程操作,如根据模板创建新的 Excel 文档,编辑现有 Excel 文档以及对 Excel 文档进行转换

代码

using Spire.Xls;
using System.Linq;

namespace GlobalTools
{
    public class Excel
    {
        private Workbook workbook = new Workbook();
        private Worksheet sheet;
        public Excel(bool isnew,string path=null)
        {
            if (isnew)
            {
                workbook = new Workbook();
                workbook.Worksheets[1].Remove();
            }
            else
                workbook.LoadFromFile(path);
            sheet = workbook.Worksheets[0];
        }
        public void Save(string path=null)
        {
            if (path == null) workbook.Save();
            else workbook.SaveToFile(path, ExcelVersion.Version2016);
            return;

        }
        public int GetRawCount()=> sheet.Rows.Count();
        public int GetColumnCount() => sheet.Columns.Count();
        public string this[int row,int column]
        {
            get => sheet.Range[((char)(65 + column)).ToString() + (row + 1).ToString()].Text;
            set => sheet.Range[((char)(65 + column)).ToString() + (row + 1).ToString()].Text = value;    
        }
        public string this[string index]
        {
            get => sheet.Range[index].Text;
            set => sheet.Range[index].Text = value;            
        }         
    }
}

解释

该封装只是个简单封装,可以快速操作单张表数据
1.public Excel(bool isnew,string path=null)
初始化对象,如果是新建文件,isnew为true,path不填,反之为false,path为文件地址
2.public void Save(string path=null)
保存文件,如果是新建文件,path为保存的地址,否则不填(如果为是载入文件,那么带有path参数为另存为的位置)

例子

新建文件

Excel excel = new Excel(true);
excel[0, 0] = "Hello";
excel[0, 1] = "World";
excel[1, 0] = "Hello";
excel[1, 1] = "C#";
excel.Save("test.xlsx");

在这里插入图片描述
载入已有文件

Excel excel = new Excel(false,"test.xlsx");
excel[0, 1] = "MyExcel";
excel.Save("test.xlsx");

在这里插入图片描述

结语

1.使用时请引入Nuget包
在这里插入图片描述
PS:学习用可以用Free版本的
2.如果单元格为空,在程序操作的时候请判断一下是否存在数据

if(excel[i,j]!=null)
{
    //do some thing
}
else
{
    //do other thing
}

3.单元格对应索引就是 1,A 对应 0,0 对应 行号,列号

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐