广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#把DataTable导出为Excel文件
  • 647
分享到

C#把DataTable导出为Excel文件

2024-04-02 19:04:59 647人浏览 泡泡鱼
摘要

实现DataTable转为excel文件,和上次分享的Excel文件转为DataTable互为反操作。DataTable转化为Excel文件是通过传入一个DataTable类型的参数

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

方法一:

/// <summary>
/// DataTable数据导出Excel
/// </summary>
/// <param name="data"></param>
/// <param name="filepath"></param>
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 <dt.Columns.Count; k++)
                {
                    row.CreateCell(k).SetCellValue(r[k].ToString());

                    //如果是数字,判断是否需要转换为数字
                    //if (IsNumeric(r[k].ToString()))
                    //{
                    //    row.CreateCell(k).SetCellValue(Convert.ToDouble(r[k].ToString()));
                    //}
                    //else
                    //{
                    //    row.CreateCell(k).SetCellValue(r[k].ToString());
                    //}
                }

                row = sheet.CreateRow(++row_index);
            }
            count += row_index - 2;
        }
        //保存Workbook方式一: 以文件形式保存到服务器中(每次导出都会生成一个文件,慎重使用)
        var FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";

        var sw = File.Create(FilePath + FileName);
        workbook.Write(sw);
        sw.Close();
        var EC = new ExcelConverter();
        EC.WEBopenExcel(Response, FilePath + FileName);
        #endregion
    }

到此这篇关于C#把DataTable导出为Excel文件的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C#把DataTable导出为Excel文件

本文链接: https://www.lsjlt.com/news/145489.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#把DataTable导出为Excel文件
    实现DataTable转为Excel文件,和上次分享的Excel文件转为DataTable互为反操作。DataTable转化为Excel文件是通过传入一个DataTable类型的参数...
    99+
    2022-11-13
  • C#怎么把DataTable导出为Excel文件
    本文小编为大家详细介绍“C#怎么把DataTable导出为Excel文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么把DataTable导出为Excel文件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-06-29
  • 如何使用JavaScript把页面上的表格导出为Excel文件
    本篇内容主要讲解“如何使用JavaScript把页面上的表格导出为Excel文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用JavaScript把页面上的表格导出为Excel文件”吧!...
    99+
    2023-06-04
  • EasyExcel导出Excel文件
    导出Excel 方法一 导入EasyExcel依赖 com.alibaba easyexcel 创建实体类 @Data@AllArgsConstructor@NoArgsConstruc...
    99+
    2023-10-20
    excel java 开发语言
  • Python导出Excel文件
    根据之前导出到txt文件的贴吧爬虫内容示例:title:片花 《战狼2》要的dian    firstAuthor:可爱的... reNum:6    content:关注 弓重 hao→ ziyuanhuoqu 回 战狼2   lastA...
    99+
    2023-01-31
    文件 Python Excel
  • 利用模板导出文件之XLSTransformer导出excel文件
    使用XLSTransformer库导出excel文件的步骤如下:1. 安装XLSTransformer库:在命令行中运行`pip i...
    99+
    2023-09-14
    excel
  • React实现导入导出Excel文件
    目录表示层 业务层 核心插件xlsx excel 导入 excel 导出 excel 导出插件(js-export-excel) 实现效果结语 表示层 这里我是使用的是antd的U...
    99+
    2022-11-12
  • JavaScript实现excel文件导入导出
    目录一、需求场景描述1.此时前端上传解析excel文件可能更合适2.此时前端下载excel文件可能优雅一些二、实现思路分析1.导入excel文件实现思路分析2.导出excel文件实现...
    99+
    2022-11-13
  • C#利用OLEDB实现将DataTable写入Excel文件中
    OLEDB 定义: OLE DB(OLEDB)是微软设计的通向不同的数据源的低级应用程序接口。OLE DB不仅包括微软资助的标准数据接口开放数据库连通性(ODBC)的结构化查询语言(...
    99+
    2023-02-15
    C# OLEDB DataTable写入Excel C#  DataTable写入Excel C# OLEDB DataTable
  • OAF将查询结果导出为EXCEL格式文件
    PG:创建一个类型为button的按钮,设置按钮的Action Type为firePartialAction和Event为exportexcel(按钮类型不用 submitButton 的原因是 s...
    99+
    2022-10-18
  • PHP使用PhpSpreadsheet 导出excel文件
            PhpSpreadsheet 是使用PHP语言编写的用户操作excel的类库,提供了一系列丰富的接口,可很方便的对文档属性、单元格进行操作,包括设置样式、图片、日期、函数等等。 PhpSpreadsheet用方法也很简单,示...
    99+
    2023-10-25
    excel php
  • 利用java如何实现把对象数组导出从Excel文件
    利用java如何实现把对象数组导出从Excel文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、导入相关jar包,pom依赖如下: <dependency> ...
    99+
    2023-05-31
    java excel 对象数组
  • Python实现将Excel内容批量导出为PDF文件
    目录序言实现代码序言 上一篇咱们实现了多个表格数据合并到一个表格,本次咱们来学习如何将表格数据分开导出为PDF文件。 部分数据 然后需要安装一下这个软件 wkhtmltopdf 不...
    99+
    2022-11-10
  • EasyExcel实现Excel文件导入导出功能
    一、EasyExcel简介 Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的fu...
    99+
    2023-09-15
    excel java Powered by 金山文档
  • React怎么实现导入导出Excel文件
    这篇文章主要介绍“React怎么实现导入导出Excel文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“React怎么实现导入导出Excel文件”文章能帮助大家解决问题。表示层这里我是使用的是ant...
    99+
    2023-06-05
  • 金山文档怎么导出excel文件
    金山文档导出excel文件的方法:1、打开金山文档,登录金山文档账户,并选择要导出为Excel文件的文档;2、选择数据要导出的范围,在文档中,选中要导出的数据区域;3、点击“导出”按钮,然后选择“导出为Excel”;4、选择导出文件的位置和...
    99+
    2023-08-03
  • C#Winform中DataGridView导出为Excel的实现示例
    目录1、前言2、效果展示3、详细步骤3.1 添加NPOI和NPOI.Excel包3.2 创建NPOIHelper类3.3 给画面添加SaveFileDialog3.4 引入命名空间3...
    99+
    2022-11-13
  • C#导入和导出CSV文件
    一、手工导出导出 1、winform void DataGridViewToExcel(DataGridView dataGridView1) { SaveFileDialo...
    99+
    2022-11-13
  • 如何把eclipse中的文件导出
    要将Eclipse中的文件导出,您可以按照以下步骤进行操作:1. 打开Eclipse,并在导航器视图(Navigator View)...
    99+
    2023-08-20
    eclipse
  • 将dataGridView内容导出到Excel文件
    这里提供了两种将DataGridView内容导出到Excel文件的方法。方法1:/// <summary>/// 在没有安装Excel的情况下,将DataGridView数据导出到Excel/// </summary>...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作