.NET中通过C#实现Excel与DataTable的数据互转-将数据从Excel表格导入DataTable

Worksheet.Range[].Value属性可以帮助我们直接向Excel工作表中的指定单元格写入数据。我们可以将从其他地方获取到的DataTable对象中的数据搭配此属性写入到Excel文件中。以下是操作步骤:

  1. 导入所需模块。
  2. 定义数据并使用数据构建DataTable对象。
  3. 创建Workbook实例。
  4. 使用Workbook.Worksheets.Clear()方法清除默认工作表,然后使用Workbook.Worksheets.Add()方法新建工作表。
  5. 遍历DataTable列,使用DataTable.Columns[].ColumnName属性获取列名,最后使用Worksheet.Range[].Value属性将列名写入工作表。
  6. 遍历DataTable数据行和列,使用DataTable.Rows[][].ToString()方法获取数据为字符串,最后使用Worksheet.Range[].Value属性将数据写入工作表。
  7. 使用Workbook.SaveToFile()方法保存Excel文件。
  8. 释放资源。

代码示例

using Spire.Xls;
using System.Data;

namespace DataTableToExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            // 定义数据列表并创建一个DataTable实例
            string[,] data = new string[,]
            {
                { "Product", "Quantity", "SalesAmount" },
                { "Product A", "100", "5000.0" },
                { "Product B", "150", "7500.0" },
                { "Product C", "200", "10000.0" },
                { "Product D", "120", "6000.0" },
                { "Product E", "180", "9000.0" }
            };
            DataTable dataTable = new DataTable();
            // 获取列数
            int columnCount = data.GetLength(1);
            // 添加列
            for (int col = 0; col < columnCount; col++)
            {
                dataTable.Columns.Add(data[0, col]);
            }
            // 添加数据行
            for (int row = 1; row < data.GetLength(0); row++)
            {
                DataRow dataRow = dataTable.NewRow();
                for (int col = 0; col < columnCount; col++)
                {
                    dataRow[col] = data[row, col];
                }
                dataTable.Rows.Add(dataRow);
            }

            // 创建Workbook的实例
            Workbook workbook = new Workbook();

            // 清除默认工作表并添加一个工作表
            workbook.Worksheets.Clear();
            Worksheet sheet = workbook.Worksheets.Add("SalesReport");

            // 写入列名
            for (int col = 0; col < columnCount; col++)
            {
                sheet.Range[1, col + 1].Value = dataTable.Columns[col].ColumnName;
            }

            // 写入数据行
            for (int row = 0; row < dataTable.Rows.Count; row++)
            {
                for (int col = 0; col < columnCount; col++)
                {
                    sheet.Range[row + 2, col + 1].Value = dataTable.Rows[row][col].ToString();
                }
            }

            // 保存到文件
            workbook.SaveToFile("output/DataTableToExcel.xlsx", FileFormat.Version2016);
            workbook.Dispose();
        }
    }
}

结果
C#将DataTable数据写入Excel

本文演示如何使用C#代码在.NET程序中导入Excel文件数据到DataTable以及到处DataTable数据到Excel文件。

上一篇:华为机试HJ30 字符串合并处理


下一篇:WebRTC项目一对一视频