美文网首页
C#将不规则表格数据导出到Excel文件的代码

C#将不规则表格数据导出到Excel文件的代码

作者: 22334 | 来源:发表于2022-02-22 22:41 被阅读0次

    学习闲暇时间,将做工程过程较好的一些内容做个收藏,下面内容是关于C#将不规则表格数据导出到Excel文件的内容,应该是对小伙伴们有所用。

    public void OutputExcel(DataView dv,string str)

    {

      GC.Collect();

      int rowIndex=4;

      int colIndex=1;

      _Workbook xBk;

      _Worksheet xSt;

      excel= new ApplicationClass();

     

      xBk = excel.Workbooks.Add(true);

       

      xSt = (_Worksheet)xBk.ActiveSheet;

      foreach(DataColumn col in dv.Table.Columns)

      {

        colIndex++;

        excel.Cells[4,colIndex] = col.ColumnName;

      }

      foreach(DataRowView row in dv)

      {

        rowIndex ++;

        colIndex = 1;

        foreach(DataColumn col in dv.Table.Columns)

        {

        colIndex ++;

        if(col.DataType == System.Type.GetType("System.DateTime"))

        {

          excel.Cells[rowIndex,colIndex] = (Convert.ToDateTime(row[col.ColumnName].ToString())).ToString("yyyy-MM-dd");

        }

        else

          if(col.DataType == System.Type.GetType("System.String"))

        {

          excel.Cells[rowIndex,colIndex] = "'"+row[col.ColumnName].ToString();

        }

        else

        {

          excel.Cells[rowIndex,colIndex] = row[col.ColumnName].ToString();

        }

        }

      }

      int rowSum = rowIndex + 1;

      int colSum = 2;

      excel.Cells[rowSum,2] = "合计";

      xSt.get_Range(excel.Cells[rowSum,2],excel.Cells[rowSum,2]).HorizontalAlignment = XlHAlign.xlHAlignCenter;

      xSt.get_Range(excel.Cells[rowSum,colSum],excel.Cells[rowSum,colIndex]).Select();

      excel.Cells[2,2] = str;

      xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Bold = true;

      xSt.get_Range(excel.Cells[2,2],excel.Cells[2,2]).Font.Size = 22;

      xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Select();

      xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Columns.AutoFit();

      xSt.get_Range(excel.Cells[2,2],excel.Cells[2,colIndex]).Select();

      xSt.get_Range(excel.Cells[2,2],excel.Cells[2,colIndex]).HorizontalAlignment = XlHAlign.xlHAlignCenterAcrossSelection;

      xSt.get_Range(excel.Cells[4,2],excel.Cells[rowSum,colIndex]).Borders.LineStyle = 1;

      excel.Visible=true;

      xBk.SaveCopyAs(Server.MapPath(".")+""+this.xlfile.Text+".xls");

      ds = null;

                xBk.Close(false, null,null);

       

                excel.Quit();

                System.Runtime.InteropServices.Marshal.ReleaseComObject(xBk);

                System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);

        System.Runtime.InteropServices.Marshal.ReleaseComObject(xSt);

                xBk = null;

                excel = null;

      xSt = null;

                GC.Collect();

      string path = Server.MapPath(this.xlfile.Text+".xls");

      System.IO.FileInfo file = new System.IO.FileInfo(path);

      Response.Clear();

      Response.Charset="GB2312";

      Response.ContentEncoding=System.Text.Encoding.UTF8;

      Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(file.Name));

      Response.AddHeader("Content-Length", file.Length.ToString());

       

      Response.ContentType = "application/ms-excel";

       

      Response.WriteFile(file.FullName);

     

      Response.End();

    }

                                   

                           

                                   

    上面的方面,均将要导出的execl数据,直接给浏览器输出文件流,下面的方法是首先将其存到服务器的某个文件夹中,然后把文件发送到客户端。这样可以持久的把导出的文件存起来,以便实现其它功能。

                                   

                           

                   

                   

               

               

                   

    相关文章

      网友评论

          本文标题:C#将不规则表格数据导出到Excel文件的代码

          本文链接:https://www.haomeiwen.com/subject/yoynlrtx.html