欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#实现Excel操作——添加页签Sheet

程序员文章站 2024-02-05 15:28:16
C#实现对Excel操作,根据数据的类型不同或者来源不同会放在不同的页签中,C#实现添加页签代码如下:(path为文档保存的地址,dt为要处理的源数据) public void addSheet(string Path, DataTable dt) { var SlDoc = new SLDocum ......

c#实现对excel操作,根据数据的类型不同或者来源不同会放在不同的页签中,c#实现添加页签代码如下:(path为文档保存的地址,dt为要处理的源数据

 public void addsheet(string path, datatable dt)
    {
        var sldoc = new sldocument(path);
        sldoc.addworksheet("sheet2");//添加新的sheet

        adddata(sldoc, dt);//填充数据

        sldoc.saveas(path);
    }
    public void adddata(sldocument sldoc, datatable dt)//针对excel的每列进行塞数据
    {
        var strcell = columns(dt);

        for (int j = 0; j < dt.columns.count; j++)
        {
            sldoc.setcellvalue(strcell[j] + 1, dt.columns[j].tostring());//先塞列名
        }
        if (dt != null && dt.rows.count > 0)
        {
            //按行进行对excel塞查出的table中数据
            for (int j = 0; j < dt.rows.count; j++)
            {
                for (int i = 0; i < strcell.length; i++)
                    sldoc.setcellvalue(strcell[i] + (j + 2), dt.rows[j][i].tostring());
            }
        }
    }
  public string[] columns(datatable dt)//获取excel的而每个单元格的列名a,b,c......
    {
        var num = 65;
        var str = new string[dt.columns.count];
        for (int i = 0; i < dt.columns.count; i++)
        {
            if (i < 26)
            {
                str[i] = ((char)num).tostring();
            }
            else
            {
                var aa = (i / 26) + 64;

                var bb = num - (i / 26) * 26;
                str[i] = ((char)aa).tostring() + ((char)bb).tostring();
            }