npoi2.0将datatable对象转换为excel2007示例

针对将DataTable对象转换为Excel2007的问题,可以使用NPOI来实现。步骤分为以下几个:首先创建一个Workbook对象;接着创建一个Sheet对象,指定Sheet名称;然后创建表头header;接着将header插入到Excel表格的第一行中;最后将DataTable中的数据逐行写入Excel表格中。

下面给出两个具体的示例说明:

示例一

using NPOI.XSSF.UserModel;
using NPOI.SS.UserModel;
using System.IO;
using System.Data;

public static void DataTableToExcel(DataTable table, string filePath)
{
    //创建Workbook对象
    var wb = new XSSFWorkbook();

    //创建Sheet对象,指定Sheet名称
    var sheet = wb.CreateSheet("Sheet1");

    //创建表头header
    var headerRow = sheet.CreateRow(0);

    for (int i = 0; i < table.Columns.Count; i++)
    {
        var headerCell = headerRow.CreateCell(i);
        headerCell.SetCellValue(table.Columns[i].ColumnName);
    }

    //将DataTable中的数据逐行写入Excel表格中
    for (int i = 0; i < table.Rows.Count; i++)
    {
        var row = sheet.CreateRow(i + 1);
        for (int j = 0; j < table.Columns.Count; j++)
        {
            var cell = row.CreateCell(j);
            cell.SetCellValue(table.Rows[i][j].ToString());
        }
    }

    //保存Excel文件
    using (var fileSream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
    {
        wb.Write(fileSream);
    }
}

示例二

using NPOI.XSSF.UserModel;
using NPOI.SS.UserModel;
using System.IO;
using System.Data;

public static void DataTableToExcel(DataTable table, string filePath)
{
    //创建Workbook对象
    var wb = new XSSFWorkbook();

    //创建Sheet对象,指定Sheet名称
    var sheet = wb.CreateSheet("Sheet1");

    //创建表头header
    var headerRow = sheet.CreateRow(0);

    for (int i = 0; i < table.Columns.Count; i++)
    {
        var headerCell = headerRow.CreateCell(i);
        headerCell.SetCellValue(table.Columns[i].ColumnName);
    }

    //将DataTable中的数据逐行写入Excel表格中
    for (int i = 0; i < table.Rows.Count; i++)
    {
        var row = sheet.CreateRow(i + 1);
        for (int j = 0; j < table.Columns.Count; j++)
        {
            var cell = row.CreateCell(j);
            var rowValue = table.Rows[i][j];
            if (rowValue == DBNull.Value)
            {
                cell.SetCellValue("");
            }
            else
            {
                if (rowValue is DateTime)
                {
                    cell.SetCellValue((DateTime)rowValue);
                    cell.SetCellType(CellType.Numeric);
                }
                else if (rowValue is bool)
                {
                    cell.SetCellValue((bool)rowValue);
                    cell.SetCellType(CellType.Boolean);
                }
                else if (float.TryParse(rowValue.ToString(), out float val))
                {
                    cell.SetCellValue(val);
                    cell.SetCellType(CellType.Numeric);
                }
                else
                {
                    cell.SetCellValue(rowValue.ToString());
                }
            }
        }
    }

    //保存Excel文件
    using (var fileSream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
    {
        wb.Write(fileSream);
    }
}

以上两个示例分别实现了将DataTable转换为Excel文件的功能。第一个示例比较简单,直接将DataTable中的数据逐行写入Excel表格中。第二个示例在此基础上增加了对Excel单元格数据类型的转换功能,可以更好地处理DataTable中的不同数据类型。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:npoi2.0将datatable对象转换为excel2007示例 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • C#将指定目录所有文件名转换成小写的方法

    下面是详细的讲解: 设置目录和文件名 首先,需要在C#中指定需要转换文件名大小写的目录。可以使用DirectoryInfo类来操作目录。并使用GetFiles方法获取指定目录下的文件列表。 using System.IO; using System.Linq; // 指定目录 var directory = new DirectoryInfo(@"…

    C# 2023年6月1日
    00
  • C#实现简单的JSON序列化功能代码实例

    下面给出C#实现简单的JSON序列化功能的完整攻略,包含以下几个步骤: 1. 创建C#类以及对象 首先需要创建一个C#类,该类的属性用于存储需要序列化成JSON格式的数据。以下是一个示例类: public class Person { public string Name { get; set; } public int Age { get; set; } …

    C# 2023年5月31日
    00
  • 通过隐藏option实现select的联动效果

    当我们需要实现 select 元素之间的联动效果时,往往需要使用 JavaScript 动态改变 select 的 options。但实际上,我们也可以通过设置option的隐藏与显示来实现联动效果。 下面是通过隐藏 option 实现 select 的联动效果的完整攻略: 步骤一:编写 HTML 结构 首先我们需要编写 HTML 结构,包含所有要联动的 s…

    C# 2023年6月1日
    00
  • C#实现拼手气红包算法

    C#实现拼手气红包算法攻略 简介 拼手气红包是一种大家熟悉的红包形式,在微信等社交软件中广受欢迎。拼手气红包算法即为在一定的规则下,随机分配一定数量的金额给参与者,深受大众喜爱。本篇攻略将介绍如何使用C#实现拼手气红包算法。 步骤 步骤一:确定算法规则 在实现拼手气红包算法前,需要确定红包的基本规则。下面是拼手气红包的基本规则: 红包的总金额为固定值。 红包…

    C# 2023年6月8日
    00
  • 本人常用的asp代码 原创

    “本人常用的ASP代码原创”攻略 什么是ASP? ASP(Active Server Pages)是微软公司开发的动态网页技术。通过使用ASP,可以在网页中嵌入服务器端脚本代码,并将动态产生的结果发送回客户端浏览器。 如何使用ASP? 要使用ASP,需要一台安装了IIS(Internet Information Services)服务器软件的Windows计…

    C# 2023年5月31日
    00
  • C# 中 “$” 符号的作用以及用法详解

    当在C#中使用字符串时,我们经常需要将一些变量或表达式的值嵌入到字符串中。使用传统的字符串连接方式比较繁琐,更好的选择是使用“$”符号创建格式化字符串,这种方法被称为字符串插值。 $符号的作用 在C#中,$符号可以用来创建格式化字符串。使用$符号创建的字符串,可以包含嵌入的表达式或变量,而不需要使用任何字符串串联符号,同时提供更加方便的可读性和代码清晰度。 …

    C# 2023年6月6日
    00
  • C#实现基于IE内核的简单浏览器完整实例

    C#实现基于IE内核的简单浏览器完整实例 简介 本篇攻略将介绍如何使用C#实现基于IE内核的简单浏览器。 推荐工具 Visual Studio 2019 .NET Framework 4.7.2 实现步骤 step1:创建项目 在Visual Studio 2019中创建一个Windows Forms应用程序项目。 step2:添加WebBrowser控件 …

    C# 2023年6月1日
    00
  • 利用C#编写一个Windows服务程序的方法详解

    Title: 利用C#编写一个Windows服务程序的方法详解 介绍 Windows服务是在后台运行的程序,可以在计算机启动时自动启动,不需要用户登陆即可运行。本文将详细讲解如何利用C#编写一个Windows服务程序。 步骤 1.创建Windows服务项目 打开Microsoft Visual Studio,选择“新建项目”,在左侧菜单中选择“Visual.…

    C# 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部