`
无恨星晨
  • 浏览: 31755 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
文章分类
社区版块
存档分类
最新评论

DataSet导出Excel

阅读更多
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

using System.Data ;

using System.Data.OleDb;



namespace ExportExcel

{



    public class ExportExcel

    {

        public static void ExportToExcel(DataGridView dgv, string reportTitle)

        {

            Excel.Application xlApp = new Excel.ApplicationClass();

            if (xlApp == null)

            {

                MessageBox.Show("Excel无法启动", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }

            int rowIndex = 2;

            int colIndex = 0;

            Excel.Workbook xlBook = xlApp.Workbooks.Add(true);

            Excel.Range range = xlApp.get_Range(xlApp.Cells[1, 1], xlApp.Cells[1, dgv.ColumnCount]);

            range.MergeCells = true;

            xlApp.ActiveCell.FormulaR1C1 = reportTitle;

            xlApp.ActiveCell.Font.Size = 18;

            xlApp.ActiveCell.Font.Bold = true;



            foreach (DataGridViewColumn column in dgv.Columns)

            {

                colIndex = colIndex + 1;

                xlApp.Cells[2, colIndex] = column.HeaderText;

            }



            for (int row = 0; row < dgv.Rows.Count; row++)

            {

                rowIndex = rowIndex + 1;

                for (int col = 0; col < dgv.Columns.Count; col++)

                {

                    xlApp.Cells[rowIndex, col + 1] = dgv.Rows[row].Cells[col].Value.ToString();

                }

            }



            xlApp.get_Range(xlApp.Cells[2, 1], xlApp.Cells[2, dgv.Columns.Count]).Font.Bold = true;

            xlApp.get_Range(xlApp.Cells[2, 1], xlApp.Cells[rowIndex, colIndex]).Borders.LineStyle = 0;

            xlApp.Cells.EntireColumn.AutoFit();

            xlApp.Cells.VerticalAlignment = Excel.Constants.xlCenter;

            xlApp.Cells.HorizontalAlignment = Excel.Constants.xlCenter;

            try

            {

                xlApp.Visible = false;

                xlApp.Save(reportTitle);



            }

            catch

            {



            }

            finally

            {

                xlApp.Quit();

            }

        }

        public static void ExportToExcel(DataGridView dgv)

        {

            Excel.Application xlApp = new Excel.ApplicationClass();

            if (xlApp == null)

            {

                MessageBox.Show("Excel无法启动", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }

            int rowIndex = 1;

            int colIndex = 0;

            Excel.Workbook xlBook = xlApp.Workbooks.Add(true);



            foreach (DataGridViewColumn column in dgv.Columns)

            {

                colIndex++;

                xlApp.Cells[1, colIndex] = column.HeaderText;

            }



            for (int row = 0; row < dgv.Rows.Count; row++)

            {

                rowIndex++;

                for (int col = 0; col < dgv.Columns.Count; col++)

                {

                    xlApp.Cells[rowIndex, col + 1] = dgv.Rows[row].Cells[col].Value.ToString();

                }

            }

            xlApp.get_Range(xlApp.Cells[1, 1], xlApp.Cells[1, dgv.Columns.Count]).Font.Bold = true;

            xlApp.get_Range(xlApp.Cells[1, 1], xlApp.Cells[rowIndex, colIndex]).Borders.LineStyle = 0;

            xlApp.Cells.EntireColumn.AutoFit();

            xlApp.Cells.VerticalAlignment = Excel.Constants.xlCenter;

            xlApp.Cells.HorizontalAlignment = Excel.Constants.xlCenter;

            try

            {

                xlApp.Visible = false;

                xlApp.Save("Sheet1");



            }

            catch

            {



            }

            finally

            {

                xlApp.Quit();

            }

        }

        public static void ExportToExcel(DataSet ds, string fileStrName)

        {

            Excel.Application excel = new Excel.ApplicationClass();

            if (excel == null)

            {

                MessageBox.Show("Excel无法启动", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }

            int rowindex = 2;

            int colindex = 0;

            excel.Application.Workbooks.Add(true);

            DataTable dt = ds.Tables[0];

            Excel.Range range = excel.get_Range(excel.Cells[1, 1], excel.Cells[1, dt.Columns .Count]);

            range.MergeCells = true;

            excel.ActiveCell.FormulaR1C1 =fileStrName;

            excel.ActiveCell.Font.Size = 18;

            excel.ActiveCell.Font.Bold = true;          

            foreach (DataColumn col in dt.Columns)

            {

                colindex=colindex +1;

                excel.Cells[2, colindex] = col.ColumnName;

            }

            foreach (DataRow row in dt.Rows)

            {

                colindex = 0;

                rowindex++;

                foreach (DataColumn col in dt.Columns)

                {

                    colindex++;

                    excel.Cells[rowindex, colindex] = row[col.ColumnName].ToString();

                }

            }

            excel.get_Range(excel.Cells[1, 1], excel.Cells[1, dt.Columns.Count]).Font.Bold = true;

            excel.get_Range(excel.Cells[1, 1], excel.Cells[rowindex, colindex]).Borders.LineStyle = 0;

            excel.Cells.EntireColumn.AutoFit();

            excel.Cells.VerticalAlignment = Excel.Constants.xlCenter;

            excel.Cells.HorizontalAlignment = Excel.Constants.xlCenter;

            try

            {

                excel.Visible = false;

                excel.Save("Sheet1");

               

            }

            catch { }

            finally

            {

                excel.Quit();

                excel = null;

            }

        }

        public static void ExportToExcel(DataSet ds)

        {

            Excel.Application excel = new Excel.ApplicationClass();

            if (excel == null)

            {

                MessageBox.Show("Excel无法启动", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }

            int rowindex = 1;

            int colindex = 0;

            excel.Application.Workbooks.Add(true);

            DataTable dt = ds.Tables[0];

            foreach (DataColumn col in dt.Columns)

            {

                colindex++;

                excel.Cells[1, colindex] = col.ColumnName;

            }

            foreach (DataRow row in dt.Rows)

            {

                colindex = 0;

                rowindex++;

                foreach (DataColumn col in dt.Columns)

                {

                    colindex++;

                    excel.Cells[rowindex, colindex] = row[col.ColumnName].ToString();

                }

            }

            excel.get_Range(excel.Cells[1, 1], excel.Cells[1, dt.Columns.Count]).Font.Bold = true;

            excel.get_Range(excel.Cells[1, 1], excel.Cells[rowindex, colindex]).Borders.LineStyle = 0;

            excel.Cells.EntireColumn.AutoFit();

            excel.Cells.VerticalAlignment = Excel.Constants.xlCenter;

            excel.Cells.HorizontalAlignment = Excel.Constants.xlCenter;

            try

            {

                excel.Visible = false;

                excel.Save("Sheet1");

            }

            catch { }

            finally

            {

                excel.Quit();

                excel = null;

            }

          

        }

        public static DataSet ExcelToDataSet(string strFilePath)

        {

            DataSet ds = null;

            try

            {

                string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + strFilePath + ";" + "Extended Properties=Excel 8.0;";

                OleDbConnection conn = new OleDbConnection(strConn);

                conn.Open();

                string strExcel = "";

                OleDbDataAdapter myCommand = null;



                strExcel = "select * from [Sheet1$]";

                myCommand = new OleDbDataAdapter(strExcel, strConn);

                ds = new DataSet();

                myCommand.Fill(ds, "table1");

            }

            catch

            {

                return null;

                MessageBox.Show("Excel文件属性设置有误,不能导入!");



            }

            return ds;

        }

        public static void ExportToText(DataGridView dgv, string reportTitle)

        {

            SaveFileDialog dlg = new SaveFileDialog();

            dlg.Title = "输出报表";

            dlg.Filter = "文本文件(*.txt)|*.txt";

            if (DialogResult.OK == dlg.ShowDialog())

            {

                //遍历求出各列内容的最大长度,以便按格式对齐

                int[] colContentLength = new int[dgv.ColumnCount];

                for (int row = 0; row < dgv.Rows.Count; row++)

                {

                    for (int col = 0; col < dgv.ColumnCount; col++)

                    {

                        if (dgv.Rows[row].Cells[col].Value.ToString().Length > colContentLength[col])

                        {

                            colContentLength[col] = dgv.Rows[row].Cells[col].Value.ToString().Length;

                        }

                    }

                }



                string fileName = dlg.FileName;

                FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);

                StreamWriter sw = new StreamWriter(fs);

                //通过流来写文件

                try

                {

                    sw.WriteLine(reportTitle);

                    sw.WriteLine();

                    sw.WriteLine("----------------------------------------------------------");

                    //写列名

                    int position = 0;

                    foreach (DataGridViewColumn column in dgv.Columns)

                    {

                        sw.Write(column.HeaderText.PadRight(colContentLength[position++] + 4));

                    }

                    //写内容

                    for (int row = 0; row < dgv.Rows.Count; row++)

                    {

                        sw.WriteLine();

                        for (int col = 0; col < dgv.ColumnCount; col++)

                        {

                            sw.Write(dgv.Rows[row].Cells[col].Value.ToString().PadRight(colContentLength[col] +);

                        }

                    }

                    sw.WriteLine();

                    sw.WriteLine("----------------------------------------------------------");

                    sw.Flush();

                }

                catch

     
分享到:
评论

相关推荐

    NPOI 包解决.net DataSet导出excel问题

    通过学习和理解NPOI的API,你可以轻松地解决.NET中的DataSet导出Excel问题,同时实现复杂的数据格式化和定制化需求。对于大型项目,NPOI的高效性能和灵活性使其成为.NET开发者处理Excel文件的首选工具之一。

    C#DataSet导出EXCEL的方法

    C#DataSet导出EXCEL的方法 标题解释 C#DataSet导出EXCEL的方法是指使用C#语言将DataSet中的数据导出到Excel文件中的方法。在本文中,我们将介绍两种不同的方法来实现DataSet到Excel的导出。 描述解释 从描述中可以...

    DataSet 导出Excel

    而“DataSet导出Excel”是常见的数据处理任务,尤其在数据分析、报表生成或者数据交换等场景中。这个过程涉及到将DataSet中的数据转换成Excel文件格式,以便于用户进行查看、编辑或进一步分析。下面我们将详细探讨...

    .net(dataset)输出流导出excel

    .net(dataset)输出流导出excel(无需生成模版excel文件,直接输出数据流导出excel表格)

    dataset导出excel

    首先,"dataset导出excel"是指将Dataset中的数据转换并保存为Excel文件。这通常在需要将程序处理的结果以易于查看和编辑的格式提供给用户时非常有用。在.NET环境中,我们可以利用System.Data.SqlClient.Dataset类和...

    导入导出EXCEL 导出Excel 导出带线的Excel 导入DataSet

    首先,"导入导出EXCEL"是指将数据库或其他数据源的数据写入Excel文件,或从Excel文件中读取数据并加载到程序的数据结构,如DataSet。在.NET中,通常使用Microsoft.Office.Interop.Excel库(需要安装Office)或者开源...

    DataSet导出到Office 2007 Excel

    DataSet导出到Office 2007 Excel 支持服务器端杀死excel.exe进程

    C# 将DataSet导出为EXCEL

    方便好用的类模板,传入dataset 就可以生成EXCEL。 要添加引用Microsoft.Office.Interop.Excel.dll

    DataSet 或 DataTable 导出到 Excel

    在.NET编程环境中,数据处理是常见任务之一,而将数据从DataSet或DataTable导出到Excel是一种常见的需求。这有助于数据分析、报表制作或者数据共享。在本文中,我们将深入探讨如何实现这一功能,以及相关的知识点。 ...

    C#从dataset数据集导出EXCEL功能代码(dll)

    以上就是使用C#和EPPlus库从数据集导出Excel的基本过程。通过这种方式,你可以灵活地控制Excel文件的结构,包括处理复杂的表头和合并单元格,满足各种需求。这个功能通常封装在一个类库中,方便在不同的项目中复用。...

    ASP.NET用DataSet导出到Excel的方法

    ***使用DataSet导出数据到Excel的详细方法涉及.NET框架下的数据操作和文件处理技术。首先,我们要明确DataSet在.NET中的作用,它是一个内存中的数据存储结构,可以包含一个或多个DataTable,用于存储数据以及表与表...

    asp.net里导出excel表方法汇总.

    ### ASP.NET 中导出 Excel 表格方法汇总 在 ASP.NET 开发中,经常需要将数据导出到 Excel 文件中,以供用户下载或进一步分析使用。本文将详细介绍 ASP.NET 中常用的几种导出 Excel 的方法及其实现细节。 #### 一、...

    Dataset导出到Excel

    而将`DataSet`中的数据导出到Excel文件是常见的需求,这通常用于数据分析、报告生成或者数据交换。在这个场景下,我们可以使用Visual Basic(VB.NET)来实现这个功能。以下是对这个过程的详细讲解。 首先,你需要...

    C# 采用OleDB读取EXCEL文件并导出

    功能描述: 1、选择当前路径下的所有xls文件(xls文件必须是统一格式);...3、从Dataset导出到Excel表格 注:此代码运行是需有office组建作为支持,即运行该程序的电脑上必须安装office软件;程序由VS2012开发。

    delphi 导出数据到excel

    在Delphi中,导出数据到Excel是一项常见的任务,尤其对于需要处理大量数据或报表的应用程序。本教程将深入探讨如何使用Delphi轻松地完成这一操作。我们将主要关注两个核心概念:引用适当的单元和调用适当的方法。 ...

    多个Dataset导出到一个Excel的多个Sheet中

    总结来说,将多个Dataset导出到一个Excel的多个Sheet,涉及到对.NET的Dataset操作、Excel Interop或第三方库的使用,以及理解Excel对象模型。正确的编程实践和错误处理是确保功能正常的关键。如果你遇到类似问题,...

    WinForm下DataSet 导出

    ### WinForm下DataSet导出至Excel的关键技术与实现 #### 一、概述 在Windows Forms (WinForm) 应用程序开发中,经常需要将数据集(DataSet)中的数据导出到Excel文件中,以便于进一步的数据分析或共享。本文将详细...

    C#导出DataSet到EXCEL

    当我们需要将数据从数据库或内存中的数据结构(如DataSet)导出到Excel或CSV格式时,C#提供了多种方法来实现这一功能。下面我们将深入探讨如何在C#中实现DataSet到Excel和CSV的导出。 首先,让我们讨论如何导出...

    C# 源码 EXCEL导入到Dataset,Dataset导出到Excel

    根据提供的文件信息,本文将详细解析C#源码中实现的Excel文件与DataSet之间的导入与导出功能。此部分代码展示了如何使用C#语言通过COM组件Microsoft Excel 11.0来实现数据在Excel文件与DataSet之间的转换。 ### 一...

Global site tag (gtag.js) - Google Analytics