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# 实现灰度化图像的处理。 前提条件 在开始本文的示例代码之前,需要确保您已经具备以下条件: Visual Studio 开发环境 C# 语言基础 实例代码 在进行灰度化图像处理时,可以…

    C# 2023年5月31日
    00
  • C#用websocket实现简易聊天功能(客户端)

    下面是C#用websocket实现简易聊天功能(客户端)的完整攻略。 1. 准备工作 在开始实现聊天功能之前,你需要先准备好以下几件事情: 安装websocket库:你可以通过在Visual Studio中打开NuGet包管理器,然后搜索websocket来安装websocket库。 了解websocket连接的基本知识:websocket是一种基于TCP协…

    C# 2023年5月15日
    00
  • 举例讲解C#编程中委托的实例化使用

    下面是关于C#编程中委托的实例化使用的详细攻略: 什么是委托? 委托是一种能够存储对方法的引用的数据类型。在C#中,委托用于实现事件和回调函数,允许在程序运行时动态地将方法传递给其他方法作为参数。委托可以让C#编写者以更加灵活的方式处理事件和回调。 委托的实例化 在C#中,委托的实例化可以使用delegate关键字,指定委托类型、关联的方法名和该方法所在的对…

    C# 2023年5月31日
    00
  • C# SetCursorPos简介及使用说明

    以下是对于“C# SetCursorPos简介及使用说明”的完整攻略。 什么是SetCursorPos? SetCursorPos是Windows API的一部分,它允许开发者在Windows屏幕上移动光标。它可以用于可提高用户体验的各种应用程序,例如游戏、教育和消费者级应用程序等。 如何在C#中使用SetCursorPos? 首先,您需要使用DllImpo…

    C# 2023年6月7日
    00
  • C# 实现抓取网站页面内容的实例方法

    一、准备工作1. 安装 .NET Framework:C# 是 .NET 平台的一种语言,因此要先安装 .NET Framework。2. 安装 C# 的开发环境:Visual Studio 是 C# 的主要开发工具,建议安装Visual Studio 2019。3. 添加 HtmlAgilityPack 依赖:该包提供了一种非常方便的方式来解析 HTML。…

    C# 2023年6月7日
    00
  • WCF如何使用动态代理精简代码架构

    下面是关于“WCF如何使用动态代理精简代码架构”的完整攻略,包含两个示例。 1. 什么是WCF WCF(Windows Communication Foundation)是一种用于构建分布式应用程序的框架。它提供了一种统一的编程模型,可以使用不同的传输协议和编码方式来实现跨平台的通信。WCF支持多种传输协议包括HTTP、TCP、MSMQ等,可以在不同的网络环…

    C# 2023年5月15日
    00
  • C#几种截取字符串的方法小结

    下面是关于“C#几种截取字符串的方法小结”的完整攻略,包含两个示例。 1. C#几种截取字符串的方法 在C#中,有多种方法可以截取字符串。以下是常用的几种方法: 1.1. 使用Substring方法 可以使用Substring方法截取字符串的一部分。以下是一个示例: string str = "Hello, World!"; string…

    C# 2023年5月15日
    00
  • 一个支持普通分页和综合分页的MVC分页Helper

    针对这个话题,我将提供一个完整的攻略来实现一个支持普通分页和综合分页的MVC分页Helper。 目录 前言 步骤1:创建分页Helper 步骤2:使用分页Helper 示例1:普通分页 示例2:综合分页 前言 MVC中的分页是非常常见的需求,通过分页我们可以实现对数据的有序浏览和管理。普通分页的实现其实并不是太难,但是如何实现综合分页则有些复杂。在这里,我将…

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