`
useruu
  • 浏览: 5680 次
  • 性别: Icon_minigender_1
  • 来自: 赤峰
最近访客 更多访客>>
社区版块
存档分类
最新评论

在c#里sql导出到excel

    博客分类:
  • c#
阅读更多
1.引入excel命名空间;
using Microsoft.Office.Interop.Excel;


2.导出函数;
public void ExportToExcel(System.Data.DataTable dt)
        {
            if (dt == null) return;

            Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
            if (xlApp == null)
            {
                // lblMsg.Text = "无法创建Excel对象,可能您的电脑未安装Excel"; 
                MessageBox.Show("无法创建Excel对象,可能您的电脑未安装Excel");
                return;
            }
            System.Windows.Forms.SaveFileDialog saveDia = new SaveFileDialog();
            saveDia.Filter = "Excel|*.xls";
            saveDia.Title = "导出为Excel文件";
            if (saveDia.ShowDialog() == System.Windows.Forms.DialogResult.OK
             && !string.Empty.Equals(saveDia.FileName))
            {
                Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;
                Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
                Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1 
                Microsoft.Office.Interop.Excel.Range range = null;
                long totalCount = dt.Rows.Count;
                long rowRead = 0;
                float percent = 0;
                string fileName = saveDia.FileName;
                //写入标题 
                for (int i = 0; i < dt.Columns.Count; i++)
                {
                    worksheet.Cells[1, i + 1] = dt.Columns[i].ColumnName;
                    range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[1, i + 1];
                    //range.Interior.ColorIndex = 15;//背景颜色 
                    range.Font.Bold = false;//粗体 
                    range.HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter;//居中 
                    //加边框 
                    range.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null);
                    //range.ColumnWidth = 4.63;//设置列宽 
                    //range.EntireColumn.AutoFit();//自动调整列宽 
                    //r1.EntireRow.AutoFit();//自动调整行高 
                }
                //写入内容 
                for (int r = 0; r < dt.DefaultView.Count; r++)
                {
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        worksheet.Cells[r + 2, i + 1] = dt.DefaultView[r][i];
                        range = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[r + 2, i + 1];
                        range.Font.Size = 9;//字体大小 
                        //加边框 
                        range.BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic, null);
                        range.EntireColumn.AutoFit();//自动调整列宽 
                    }
                    rowRead++;
                    percent = ((float)(100 * rowRead)) / totalCount;
                    System.Windows.Forms.Application.DoEvents();
                }
                range.Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlInsideHorizontal].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin;
                if (dt.Columns.Count > 1)
                {
                    range.Borders[Microsoft.Office.Interop.Excel.XlBordersIndex.xlInsideVertical].Weight = Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin;
                }
                try
                {
                    workbook.Saved = false;
                    workbook.SaveCopyAs(fileName);
                }
                catch (Exception ex)
                {
                    //lblMsg.Text = "导出文件时出错,文件可能正被打开!\n" + ex.Message; 
                    MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);
                    return;
                }

                workbooks.Close();
                if (xlApp != null)
                {
                    xlApp.Workbooks.Close();
                    xlApp.Quit();
                    int generation = System.GC.GetGeneration(xlApp);
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
                    xlApp = null;
                    System.GC.Collect(generation);
                }
                GC.Collect();//强行销毁 
                #region 强行杀死最近打开的Excel进程
                System.Diagnostics.Process[] excelProc = System.Diagnostics.Process.GetProcessesByName("EXCEL");
                System.DateTime startTime = new DateTime();
                int m, killId = 0;
                for (m = 0; m < excelProc.Length; m++)
                {
                    if (startTime < excelProc[m].StartTime)
                    {
                        startTime = excelProc[m].StartTime;
                        killId = m;
                    }
                }
                if (excelProc[killId].HasExited == false)
                {
                    excelProc[killId].Kill();
                }
                #endregion
                MessageBox.Show("导出成功!");
            }
        }
分享到:
评论

相关推荐

    C#数据库导出Excel(易懂版)

    总的来说,"Mr_YoungC#导出数据到EXCEL方法谈"这个资源很可能提供了详细的步骤和代码示例,帮助开发者了解如何从C#数据库导出Excel。无论是通过`Microsoft.Office.Interop.Excel`还是EPPlus,都可以实现这一目标,...

    C#导出Excel 导出PDF

    首先,我们来看C#导出Excel的实现。Excel文件通常以`.xlsx`或`.xls`格式存储,C#可以借助Microsoft Office Interop库直接操作Excel对象,但这要求目标机器上安装了Office。另一种更灵活且无需依赖Office的方法是使用...

    C# 读取SQL数据导出到EXCEL相应工作薄

    本主题聚焦于如何利用C#从SQL Server数据库中读取数据并将其导出到Excel工作簿中。这个过程涉及到数据库连接、SQL查询、数据处理以及Excel文件操作等技术。以下是关于这一主题的详细阐述: 1. **数据库连接**:首先...

    最好用的C# winforms 数据导出到Excel

    ### 最好用的C# WinForms 数据导出到Excel 在C#开发中,经常需要将数据导出至Excel文件,特别是在WinForms应用程序中。本文将详细介绍如何利用C# WinForms将DataGridView中的数据导出到Excel文件,并提供了一个示例...

    SQL-ServerToExcel.rar_SQL 导出 excel_SQL数据库 excel_c# excel sql_sql

    本文将深入探讨如何使用C++编程语言从SQL Server数据库中导出数据到Excel文件。 首先,要实现这个功能,我们需要了解SQL Server的数据导出机制。SQL Server提供了多种方式来导出数据,包括使用SQL Server ...

    C# Access数据库 导出到Excel

    本教程将详细阐述如何使用C#将Access数据库的数据导出到Excel文件中,这是一个常见的数据转换需求,特别是在数据分析、报表生成和数据共享的场景下。 首先,我们需要理解C#如何与Access数据库进行交互。Access...

    c# sql server2008R2与Excel的导入导出

    标题 "C# SQL Server2008R2与Excel的导入导出" 涉及的是在.NET开发环境中,利用C#语言与SQL Server 2008 R2数据库进行数据交互,特别是数据的导入和导出功能。SQL Server 2008 R2是微软公司的一款强大的关系型数据库...

    c# winform datatable导出到Excel

    在C# WinForm应用开发中,常常需要将数据从数据库中读取出来并导出到Excel文件,以便用户可以方便地进行数据查看、编辑或分析。这个过程涉及到多个技术环节,包括数据库操作、数据绑定、文件操作以及Excel文件格式...

    sql2008导出到excel

    本示例涉及的知识点主要集中在如何使用C#编程语言将SQL Server 2008中的数据导出到Excel文件中。下面我们将详细探讨这一过程。 1. **C#编程基础**:C#是.NET框架的基础,用于创建各种类型的Windows应用程序,包括...

    导出带图片Excel服务

    在IT行业中,导出带图片的Excel服务是一项常见的需求,特别是在数据分析、报告生成或数据可视化的情景下。本文将详细讲解如何使用Visual Studio 2013开发这样的服务。 首先,我们需要了解Excel导出的基本原理。在...

    C# winform实现表数据导出到Excel表格

    本项目“C# winform实现表数据导出到Excel表格”旨在展示如何在Visual Studio 2010(VS2010)环境中,结合SQL Server 2005数据库,将WinForm应用中的数据导出到Microsoft Excel格式的文件中。这种功能在数据处理、...

    C# 定时自动导出数据库数据为Excel文件(有源代码),这是最新版本

    C#程序访问数据库,并按照数据库查询字段导出到excel文件中。访问数据库程序代码采用工厂模式创建,可访问多个数据库,access、sql server2000(2005)、oracle,此程序已在实际工作中稳定运行半年,可当产品出售。...

    将(Oracle)数据库表导出到Excel,并生成文件(C#实现)

    本教程将详细阐述如何使用C#编程语言来实现在Oracle数据库中导出表格数据并将其保存为Excel文件。 首先,你需要确保已经安装了以下组件: 1. Oracle客户端或者ODP.NET(Oracle Data Provider for .NET),这将允许...

    C# MySQL导出表结构到Excel源码

    本项目"**C# MySQL导出表结构到Excel源码**"提供了一个实用的解决方案,允许开发者将MySQL数据库中的表结构导出为Excel格式,这对于数据备份、分析或共享非常有帮助。 首先,我们来看C#在这一过程中的作用。C#提供...

    C#对sql中的数据导入导出

    具体而言,包括如何将Excel文件中的数据导入到SQL Server数据库中,以及如何将SQL Server数据库中的数据导出至Excel文件中,以便于利用Excel的功能进行报表输出和打印。 #### 关键词 C#;SQL Server;Excel #### ...

    C# excel导入导出 宏求和统计

    按钮“导出excel”实现从页面导出excel文件, (注:此导出的excel是通过模板demo.xls导出的,模板写了一个求和宏,执行宏:打开导出的excel文件打开 工具-宏-宏-执行宏(求和);即可看到total处显示求和结果,实现...

    C#对SQLServer中的数据导入导出.pdf

    本文将以C#语言为编程工具,以SQL Server作为目标数据库,详细介绍如何将Excel文件中的数据导入至SQL Server数据库,以及如何将数据库中的数据导出至Excel文件。 #### 二、数据库结构与表设计 在本案例中,我们...

    C# winform 导出Excel

    在C# WinForm应用开发中,导出数据到Excel是一种常见的需求,这通常涉及到数据库操作、数据绑定以及Excel文件的创建和写入。本篇将详细介绍如何实现这一功能。 首先,你需要连接到数据库以获取数据。在C#中,我们...

    Sql数据与Excel数据的导入和导出

    在IT领域,特别是软件开发与数据管理中,数据...以上就是在C#中实现SQL数据与Excel数据的导入导出的关键步骤和技巧。这不仅涉及到对C#编程语言的掌握,还要求对数据库操作、文件处理以及图形用户界面组件有深入的理解。

Global site tag (gtag.js) - Google Analytics