• 大小: 561KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-04
  • 语言: C#
  • 标签: C#  EXCEL  导出  方法  

资源简介

具体内容请参考我的BLOG:http://blog.csdn.net/smallwhiteyt/archive/2009/11/08/4784771.aspx 如果你耐心仔细看完本文,相信以后再遇到导出EXCLE操作的时候你会很顺手觉得SO EASY,主要给新手朋友们看的,老鸟可以直接飘过了,花了一晚上的时间写的很辛苦,如果觉得对你有帮助烦请留言支持一下,我会写更多基础的原创内容来回报大家。 C#导出数据到EXCEL表格是个老生常谈的问题了,写这篇文章主要是给和我一样的新手朋友提供两种导出EXCEL的方法并探讨一下导出的效率问题,本文中的代码直接就可用,其中部分代码参考其他的代码并做了修改,抛砖引玉,希望大家一起探讨,如有不对的地方还请大家多多包涵并指出来,我也是个新手,出错也是难免的。 首先先总结下自己知道的导出EXCEL表格的方法,大致有以下几种,有疏漏的请大家补充。 1.数据逐条逐条的写入EXCEL 2.通过OLEDB把EXCEL做为数据源来写 3.通过RANGE范围写入多行多列内存数据到EXCEL 4.利用系统剪贴板写入EXCEL 好了,我想这些方法已经足够完成我们要实现的功能了,方法不在多,在精,不是么?以上4中方法都可以实现导出EXCEL,方法1为最基础的方法,意思就是效率可能不是太高,当遇到数据量过大时所要付出的时间也是巨大的,后面3种方法都是第一种的衍生,在第一种方法效率低下的基础上改进的,这里主要就是一个效率问题了,当然如果你数据量都很小,我想4种方法就代码量和复杂程度来说第1种基本方法就可以了,或当你的硬件非常牛逼了,那再差的方法也可以高效的完成也没有探讨的实际意义了,呵呵说远了,本文主要是在不考虑硬件或同等硬件条件下单从软件角度出发探讨较好的解决方案。

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Reflection;
using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;

/*
 * 软件名:C#实现导出EXCEL 
 * 作者:SmallWhite
 * 2009-11-7 23:00
 * QQ 296326
 * EMail smallwhite@yahoo.cn
 */

namespace DatagridviewToExcel
{
    public partial class Form1 : Form
    {
        System.DateTime TimeP = new System.DateTime(0);
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender EventArgs e)
        {
            button2.Enabled = false;
            button3.Enabled = false;
        }

        #region 打开文件获取文件路径
        /// 
        /// 
        /// 

        /// 
        private string getPath()
        {
            //打开一个文件选择框

            openFileDialog1.title = “Excel文件“;
            openFileDialog1.FileName = ““;
            openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);//为了获取特定的系统文件夹,可以使用System.Environment类的静态方法GetFolderPath()。该方法接受一个Environment.SpecialFolder枚举,其中可以定义要返回路径的哪个系统目录
            openFileDialog1.Filter = “Excel文件(*.xls)|*.xls“;
            openFileDialog1.ValidateNames = true;     //文件有效性验证ValidateNames,验证用户输入是否是一个有效的Windows文件名
            openFileDialog1.CheckFileExists = true;  //验证路径有效性
            openFileDialog1.CheckPathExists = true; //验证文件有效性



            string strName = string.Empty;
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                strName = openFileDialog1.FileName;
            }

            if (strName == ““)
            {
                MessageBox.Show(“没有选择Excel文件!无法进行数据导入“);

            }

            return strName;
        }
        #endregion

        #region 导入一个EXCEL表格的数据进DATASET以进行测试之用
        /// 
        /// 
        /// 

        void loadSouce()
        {
            try
            {

                //连接EXCEL数据源
                string strPath = this.getPath();
                string strConn = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=“ + strPath + “;Extended Properties=“ + “\““ + “Excel 8.0;HDR=Yes;IMEX=1“ + “\““;
                OleDbConnection conn = new OleDbConnection(strConn);

                conn.Open();

                /*
                 如果用户把sheet表名改了就是报下面的错:
                ‘sheet1$‘ 不是一个有效名称。请确认它不包含无效的字符或标点,且名称不太长。 
                如果可以动态获得Excel中各个sheet的名称能动态的选中返回哪个sheet的数据,
                即使用户更改了名称也不怕,完全可以把所有sheet的名称列出来供用户选择: 
                下面就把解决问题的代码列出来,主要用到了OleDbConnection.GetOleDbSchemaTable()方法
                 */

                //返回Excel的架构,包括各个sheet表的名称类型,创建时间和修改时间等
                System.Data.DataTable dtSheetName = conn.GetOleDbSc

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       8704  2009-11-07 21:02  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\bin\Debug\DatagridviewToExcel.exe

     文件      22016  2009-11-07 21:02  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\bin\Debug\DatagridviewToExcel.pdb

     文件      14328  2009-11-07 21:02  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\bin\Debug\DatagridviewToExcel.vshost.exe

     文件        490  2007-07-21 01:33  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\bin\Debug\DatagridviewToExcel.vshost.exe.manifest

     文件     217088  2009-11-08 00:58  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\bin\Release\DatagridviewToExcel.exe

     文件      32256  2009-11-08 00:58  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\bin\Release\DatagridviewToExcel.pdb

     文件      14328  2009-11-08 00:58  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\bin\Release\DatagridviewToExcel.vshost.exe

     文件        490  2007-07-21 01:33  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\bin\Release\DatagridviewToExcel.vshost.exe.manifest

     文件    1100392  2009-11-06 13:36  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\bin\Release\Microsoft.Office.Interop.Excel.dll

     文件      64088  2009-11-06 13:36  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\bin\Release\Microsoft.Vbe.Interop.dll

     文件     223800  2009-11-06 13:36  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\bin\Release\office.dll

     文件       4197  2009-11-07 23:54  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\DatagridviewToExcel.csproj

     文件      20857  2009-11-08 00:58  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\Form1.cs

     文件       7581  2009-11-07 23:50  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\Form1.Designer.cs

     文件     156236  2009-11-07 23:50  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\Form1.resx

     文件      99678  2009-11-07 23:10  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\ICO.ico

     文件       1024  2009-11-07 21:02  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\obj\Debug\DatagridviewToExcel.csproj.FileListAbsolute.txt

     文件        847  2009-11-07 21:02  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\obj\Debug\DatagridviewToExcel.csproj.GenerateResource.Cache

     文件       8704  2009-11-07 21:02  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\obj\Debug\DatagridviewToExcel.exe

     文件        180  2009-11-07 21:02  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\obj\Debug\DatagridviewToExcel.Form1.resources

     文件      22016  2009-11-07 21:02  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\obj\Debug\DatagridviewToExcel.pdb

     文件        180  2009-11-07 21:02  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\obj\Debug\DatagridviewToExcel.Properties.Resources.resources

     文件       1403  2009-11-08 00:58  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\obj\Release\DatagridviewToExcel.csproj.FileListAbsolute.txt

     文件        847  2009-11-07 23:50  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\obj\Release\DatagridviewToExcel.csproj.GenerateResource.Cache

     文件     217088  2009-11-08 00:58  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\obj\Release\DatagridviewToExcel.exe

     文件     100244  2009-11-07 23:54  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\obj\Release\DatagridviewToExcel.Form1.resources

     文件      32256  2009-11-08 00:58  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\obj\Release\DatagridviewToExcel.pdb

     文件        180  2009-11-07 23:54  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\obj\Release\DatagridviewToExcel.Properties.Resources.resources

     文件       8663  2009-11-07 21:12  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\obj\Release\ResolveAssemblyReference.cache

     文件        500  2009-11-07 20:50  C#导出数据到EXCEL方法谈(附实例源码和超级无敌详细讲解)\DatagridviewToExcel\DatagridviewToExcel\Program.cs

............此处省略25个文件信息

评论

共有 条评论