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语言内存管理的实际应用。 内存管理基础知识 C语言提供了几种内存管理函数,包括malloc()、calloc()、realloc()和free()…

    C# 2023年6月3日
    00
  • Asp.Mvc 2.0实现用户注册实例讲解(1)

    Asp.Mvc 2.0实现用户注册实例讲解(1)的完整攻略如下: 1. Asp.Mvc 2.0介绍 Asp.Mvc 2.0是基于MVC架构的Web应用程序框架,是ASP.NET的一部分,可帮助我们更加轻松地构建Web应用程序。 MVC是Model-View-Controller的缩写,是一种设计模式。M代表数据模型(Model),V代表显示(View),C代…

    C# 2023年5月31日
    00
  • c# SendMail发送邮件实例代码

    下面详细讲解一下“c# SendMail发送邮件实例代码”的完整攻略。 什么是SendMail? SendMail是c#中一个邮件发送类,可以方便地实现发送邮件的功能。它的使用方法较为简单,只需要按照一定格式配置SMTP服务器和发件人信息,即可完成邮件的发送。 SendMail使用教程 配置SMTP服务器 在使用SendMail发送邮件前,需要首先配置SMT…

    C# 2023年6月7日
    00
  • C#学习基础概念二十五问续2

    “C#学习基础概念二十五问续2”是一篇介绍C#语言基础概念的文章,主要讲解了25个问题。以下是这篇文章的完整攻略: 1. 概述 在概述中,应该简要介绍文章的主题和内容,解释本文旨在帮助哪些读者,以及文章的阅读难度等信息。 2. C#是什么 这一节主要介绍了C#是一种什么类型的语言,它的特点和用途是什么等等。这里可以举一个示例,如以展示C#代码如何使用控制台输…

    C# 2023年6月6日
    00
  • ASP.NET中常用的三十三种代码第1/7页

    “ASP.NET中常用的三十三种代码”是一篇介绍常用代码的文章,通过对这些代码的学习和使用,可以提高 ASP.NET 的应用开发水平。下面是第 1/7 页的完整攻略: ASP.NET中常用的三十三种代码 – 第 1/7 页 1. 添加一个控件并指定 ID 在 ASP.NET 中,我们可以通过代码来添加一个控件并指定它的 ID。在页面的代码中,可以使用 Pag…

    C# 2023年5月31日
    00
  • C#实现一个简单实用的TXT文本操作及日志框架详解

    C#实现一个简单实用的TXT文本操作及日志框架详解 在C#开发中,文本操作是非常常见的需求,而日志框架则是为了记录程序执行过程中的关键数据和错误信息等,方便开发者进行问题定位和排查。本文将详细讲解如何使用C#实现一个简单实用的TXT文本操作及日志框架。 实现TXT文本操作 实现TXT文本操作需要使用到C#的System.IO命名空间下的File类和Strea…

    C# 2023年5月15日
    00
  • C#中数据类型的转换介绍

    C#中,数据类型的转换是非常常见的操作,涉及到的有隐式转换和显示转换两种操作。接下来,我们就来详细讲解C#中数据类型的转换介绍。 隐式转换 如果可以自动将一种类型的值转换为另一种类型,则称之为隐式类型转换。隐式转换不需要额外的语法。当源类型的值可以无精度损失地分配给目标类型时,或者当源类型的值可以强制转换为目标类型时,就发生隐式转换。 示例1: int i …

    C# 2023年5月15日
    00
  • 利用C#实现网络爬虫

    利用C#实现网络爬虫攻略 背景介绍 网络爬虫是一种获取互联网信息的方法。在我们日常使用互联网时,我们通过浏览器访问网站后查看相关的内容。而网络爬虫则是模拟访问网站并将有用的信息提取出来。利用网络爬虫可以快速、自动地收集大量的数据,有很大的应用价值。C#作为一种流行的编程语言,也可以用来实现网络爬虫。 网络爬虫的基本流程 利用C#实现网络爬虫,其实就是模拟浏览…

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