千家信息网

C#怎么把DataTable导出为Excel文件

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,本文小编为大家详细介绍"C#怎么把DataTable导出为Excel文件",内容详细,步骤清晰,细节处理妥当,希望这篇"C#怎么把DataTable导出为Excel文件"文章能帮助大家解决疑惑,下面跟
千家信息网最后更新 2025年01月21日C#怎么把DataTable导出为Excel文件

本文小编为大家详细介绍"C#怎么把DataTable导出为Excel文件",内容详细,步骤清晰,细节处理妥当,希望这篇"C#怎么把DataTable导出为Excel文件"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

实现DataTable转为Excel文件,和上次分享的Excel文件转为DataTable互为反操作。DataTable转化为Excel文件是通过传入一个DataTable类型的参数,然后将传入的DataTable转化为Excel文件。实现关键代码如下:

方法一:

/// /// DataTable数据导出Excel/// /// /// public static void DataTableExport(DataTable data, string filepath){    try    {        //Workbook book = new Workbook("E:\\test.xlsx"); //打开工作簿        Workbook book = new Workbook(); //创建工作簿        Worksheet sheet = book.Worksheets[0]; //创建工作表        Cells cells = sheet.Cells; //单元格        //创建样式        Aspose.Cells.Style style = book.Styles[book.Styles.Add()];        style.Borders[Aspose.Cells.BorderType.LeftBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //应用边界线 左边界线          style.Borders[Aspose.Cells.BorderType.RightBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //应用边界线 右边界线          style.Borders[Aspose.Cells.BorderType.TopBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //应用边界线 上边界线          style.Borders[Aspose.Cells.BorderType.BottomBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //应用边界线 下边界线           style.HorizontalAlignment = TextAlignmentType.Center; //单元格内容的水平对齐方式文字居中        style.Font.Name = "宋体"; //字体        style1.Font.IsBold = true; //设置粗体        style.Font.Size = 11; //设置字体大小        //style.ForegroundColor = System.Drawing.Color.FromArgb(153, 204, 0); //背景色        //style.Pattern = Aspose.Cells.BackgroundType.Solid; //背景样式        //style.IsTextWrapped = true; //单元格内容自动换行                //表格填充数据        int Colnum = data.Columns.Count;//表格列数         int Rownum = data.Rows.Count;//表格行数         //生成行 列名行         for (int i = 0; i < Colnum; i++)        {            cells[0, i].PutValue(data.Columns[i].ColumnName); //添加表头            cells[0, i].SetStyle(style); //添加样式            //cells.SetColumnWidth(i, data.Columns[i].ColumnName.Length * 2 + 1.5); //自定义列宽            //cells.SetRowHeight(0, 30); //自定义高        }        //生成数据行         for (int i = 0; i < Rownum; i++)        {            for (int k = 0; k < Colnum; k++)            {                cells[1 + i, k].PutValue(data.Rows[i][k].ToString()); //添加数据                cells[1 + i, k].SetStyle(style); //添加样式            }            cells[1 + i, 5].Formula = "=B" + (2 + i) + "+C" + (2 + i);//给单元格设置计算公式,计算班级总人数        }        sheet.AutoFitColumns(); //自适应宽        book.Save(filepath); //保存        GC.Collect();    }    catch (Exception e)    {        logger.Error("生成excel出错:" + e.Message);    }}

方法二:

public void ToExcel(DataTable dt)    {        #region 3s          var FilePath = @"D:\ToExcel\";//产生Excel文件路径        DeleteFile(FilePath);        //创建全新的Workbook         var workbook = new HSSFWorkbook();//一個sheet最多65536行        var count = 0;        for (double i = 0; i < Convert.ToDouble(dt.Rows.Count) / Convert.ToDouble(65534); i++)//每个Excel文件的一个页签只能存放65536行数据        {            var row_index = 0;            //创建Sheet            workbook.CreateSheet("Sheet" + i);            //根据Sheet名字获得Sheet对象              var sheet = workbook.GetSheet("Sheet" + i);            IRow row;            row = sheet.CreateRow(row_index);            //写入标题            for (int j = 0; j < dt.Columns.Count; j++)            {                row.CreateCell(j).SetCellValue(dt.Columns[j].Caption.ToString());            }            row = sheet.CreateRow(++row_index);            //写入数据            for (int j = 0; j < (dt.Rows.Count - count > 65534 ? 65534 : dt.Rows.Count - count); j++)            {                var r = dt.Rows[j + count];                for (int k = 0; k 

读到这里,这篇"C#怎么把DataTable导出为Excel文件"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

0