C#将Sql数据保存到Excel文件中的方法

关于“C#将Sql数据保存到Excel文件中的方法”,我可以提供以下攻略:

1.使用Microsoft.Office.Interop.Excel库保存

步骤1:安装Microsoft.Office.Interop.Excel库

在Visual Studio中安装Microsoft.Office.Interop.Excel库。

步骤2:引用命名空间

在文件头部添加using Microsoft.Office.Interop.Excel;命名空间。

步骤3:创建Excel处理对象

创建Excel处理对象.

Excel.Application application = new Excel.Application();
Excel.Workbook workbook = application.Workbooks.Add();
Excel.Worksheet worksheet = workbook.Sheets.Add();

步骤4:写入数据

查询Sql Server数据并获取DataTable变量后,将数据写入Excel文件中。

worksheet.Cells[1, 1].Value = "这里是表格的标题";
for (int i = 0; i < dt.Rows.Count; i++)
{
var row = dt.Rows[i];
for (int j = 0; j < dt.Columns.Count; j++)
{
worksheet.Cells[i + 2, j + 1] = row[j].ToString();
}
}

步骤5:保存Excel文件

保存Excel文件.

workbook.SaveAs(@"C:\example.xlsx");

示例1:使用Microsoft.Office.Interop.Excel库

using Microsoft.Office.Interop.Excel;
using System.Data;
using System.Data.SqlClient;

class Program
{
    static void Main(string[] args)
    {
        Application application = new Application();
        Workbook workbook = application.Workbooks.Add();
        Worksheet worksheet = workbook.Worksheets.Add();
        SqlConnection conn = new SqlConnection(@"Server=. ;Database=Test;Trusted_Connection=Yes;");

        SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Student", conn);
        DataTable dt = new DataTable();
        da.Fill(dt);

        worksheet.Cells[1, 1].Value = "Name";
        worksheet.Cells[1, 2].Value = "Age";
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            var row = dt.Rows[i];
            for (int j = 0; j < dt.Columns.Count; j++)
            {
                worksheet.Cells[i + 2, j + 1] = row[j].ToString();
            }
        }

        workbook.SaveAs(@"C:\example.xlsx");
        application.Quit();
    }
}

2.使用OpenXML保存

步骤1:安装DocumentFormat.OpenXml库

在Visual Studio中安装DocumentFormat.OpenXml库。

步骤2:创建Excel文件

创建Excel文件.

SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(@"C:\example.xlsx", SpreadsheetDocumentType.Workbook);
WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
workbookPart.Workbook = new Workbook();
WorksheetPart worksheetPart = workbookPart.AddNewPart();
worksheetPart.Worksheet = new Worksheet(new SheetData());

步骤3:写入数据

查询Sql Server数据并获取DataTable变量后,将数据写入Excel文件中。

SheetData sheetData = worksheetPart.Worksheet.GetFirstChild();
Row headerRow = new Row();

headerRow.Append(
new Cell()
{
CellValue = new CellValue("Name"),
DataType = CellValues.String
},
new Cell()
{
CellValue = new CellValue("Age"),
DataType = CellValues.String
});

sheetData.AppendChild(headerRow);

foreach (DataRow row in dt.Rows)
{
Row newRow = new Row();
newRow.Append(
new Cell()
{
CellValue = new CellValue(row["Name"].ToString()),
DataType = CellValues.String
},
new Cell()
{
CellValue = new CellValue(row["Age"].ToString()),
DataType = CellValues.String
});

sheetData.AppendChild(newRow);

}

步骤4:保存Excel文件

保存Excel文件。

workbookPart.Workbook.Save();
spreadsheetDocument.Close();

示例2:使用OpenXML库保存

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
using System;
using System.Data;
using System.Data.SqlClient;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(@"C:\example.xlsx", SpreadsheetDocumentType.Workbook);
        WorkbookPart workbookPart = spreadsheetDocument.AddWorkbookPart();
        workbookPart.Workbook = new Workbook();
        WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>();
        worksheetPart.Worksheet = new Worksheet(new SheetData());

        SqlConnection conn = new SqlConnection(@"Server=. ;Database=Test;Trusted_Connection=Yes;");

        SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Student", conn);
        DataTable dt = new DataTable();
        da.Fill(dt);

        SheetData sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();
        Row headerRow = new Row();

        headerRow.Append(
            new Cell()
            {
                CellValue = new CellValue("Name"),
                DataType = CellValues.String
            },
            new Cell()
            {
                CellValue = new CellValue("Age"),
                DataType = CellValues.String
            });

        sheetData.AppendChild(headerRow);

        foreach (DataRow row in dt.Rows)
        {
            Row newRow = new Row();
            newRow.Append(
                new Cell()
                {
                    CellValue = new CellValue(row["Name"].ToString()),
                    DataType = CellValues.String
                },
                new Cell()
                {
                    CellValue = new CellValue(row["Age"].ToString()),
                    DataType = CellValues.String
                });

            sheetData.AppendChild(newRow);
        }

        workbookPart.Workbook.Save();
        spreadsheetDocument.Close();
    }
}

以上就是“C#将Sql数据保存到Excel文件中的方法”的攻略,如果还有疑问,请随时询问。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#将Sql数据保存到Excel文件中的方法 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • 详解C#中线程传参,返回值和多线程冲突问题的解决

    详解C#中线程传参,返回值和多线程冲突问题的解决 前言 在C#中使用多线程可以有效提高程序的运行效率,但是使用多线程也涉及到一些问题,比如线程传参、线程返回值和多线程冲突问题。本文将详细介绍如何在C#中解决这些问题。 线程传参 线程传参是指在创建线程时,将一些数据传递给线程使用。在C#中,线程传参有多种方式,例如使用Thread类的构造函数、使用Parame…

    C# 2023年6月6日
    00
  • C# String.Join()方法: 连接一个数组中的元素,用指定的分隔符隔开

    String.Join()方法是C#中提供的一个字符串处理方法,可用于将一个一维数组中的元素通过指定的分隔符进行连接,并返回一个新的字符串。使用String.Join()方法可以很方便地将数组中的元素拼接到一起,以便进行后续操作,例如输出、存储等。 该方法的使用格式如下: string joinedString = String.Join(separator…

    C# 2023年4月19日
    00
  • JS提交form表单实例分析

    JS提交form表单实例分析: 当用户在网站上填写表单时,通过JS代码来自动提交表单也是一种方便快捷的方式,本文将从以下几个方面阐述JS提交form表单的攻略: 首先需要获取form表单元素,可以通过form元素的Id或者Name来获取: let formEle = document.getElementById(‘formId’); // 或者 let f…

    C# 2023年5月31日
    00
  • C# 监控 Windows 文件夹的方法

    C#可以使用FileSystemWatcher类来监控Windows文件夹。FileSystemWatcher类可以监视文件夹中的文件和子文件夹的创建、删除、重命名和修改等操作,并触发相应的事件。本文将提供C#监控Windows文件夹的完整攻略,包括创建FileSystemWatcher对象、设置监控选项、处理事件等。同时,本文还提供两个示例,演示如何使用C…

    C# 2023年5月15日
    00
  • c# WPF中的TreeView使用详解

    下面我将详细讲解“c# WPF中的TreeView使用详解”的完整攻略。该攻略将从以下几个方面进行讲解: 简介与基础概念 常用属性与方法的介绍 实战示例 简介与基础概念 TreeView是WPF中用于显示树结构的控件,常用于显示文件夹、目录等具有层级结构的数据。TreeView由节点和分支构成,每个节点可以包含零个或多个子节点,分支表示父子关系。 在Tree…

    C# 2023年5月31日
    00
  • asp.net登录验证码实现方法

    实现一个 ASP.NET 登录验证码的方法如下: 安装 NuGet 包 使用NuGet包管理器控制台: Install-Package Microsoft.AspNet.WebPages.OAuth -Version 3.2.3 在应用程序配置文件中添加配置 在应用程序的 web.config 配置文件中,添加以下配置来设置验证码选项: <appSet…

    C# 2023年6月3日
    00
  • C#使用protobuf-net进行序列化的详细操作

    下面是使用protobuf-net进行C#序列化的详细攻略: 什么是protobuf-net protobuf-net是一种.NET平台下的高效且跨语言的序列化框架。与其他序列化框架(如XML序列化)相比,它具有更高的序列化和反序列化效率,能够有效地将对象序列化为二进制形式,以便它们可以被存储或传输。它是Google Protobuf的一个非官方的.NET实…

    C# 2023年5月31日
    00
  • 磊科路由器智能QoS配置步骤分享

    磊科路由器智能QoS是一种网络质量服务,可以帮助您优化网络带宽,提高网络性能。本攻略将深入探讨如何配置磊科路由器智能QoS,并提供两个示例说明。 配置磊科路由器智能QoS 配置磊科路由器智能QoS的步骤如下: 1. 登录路由器管理界面 首先,您需要登录到磊科路由器的管理界面。在浏览器中输入路由器的IP地址,然后输入用户名和密码进行登录。 2. 打开QoS设置…

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