#region  DataReader 的数据导出到Excle 中
        //public string Exports(string str_sql)
        //{
        //    string destFilePath = "";
        //    Guid guid = Guid.NewGuid();
        //    destFilePath = guid.ToString();
        //    string path = Common.GetServicePath();//返回服务器路径
        //    string serverpath = path + destFilePath + ".xlsx";  //在服务器端定义Excle 让客户端进行进行下载
        //    StreamWriter str_ExcleReader = new StreamWriter(serverpath, false, Encoding.Default);
        //    OracleConnection connection = new OracleConnection(Common.GetConnectStr());
        //    connection.Open();
        //    OracleCommand cmd = new OracleCommand(str_sql, connection);
        //    OracleDataReader Reader = cmd.ExecuteReader();
        //    for (int i = 0; i < Reader.FieldCount; ++i)
        //    {
        //        str_ExcleReader.Write(Reader.GetName(i));
        //        str_ExcleReader.Write('\t');
        //    }
        //    str_ExcleReader.Write("\r\n");
        //    object[] values = new object[Reader.FieldCount];
        //    while (Reader.Read())
        //    {
        //        Reader.GetValues(values);
        //        for (int i = 0; i < values.Length; ++i)
        //        {
        //            str_ExcleReader.Write(values[i].ToString());
        //            str_ExcleReader.Write('\t');
        //        }
        //        str_ExcleReader.Write("\r\n");
        //    }
        //    str_ExcleReader.Flush();
        //    str_ExcleReader.Close();
        //    Reader.Close();
        //    connection.Close();
        //    return ReturnData.WriteXml("<data>" + serverpath + "</data>");
        //}
        #endregion

#region 根据查询条件查询出的数据导出Excle2010中
        /// <summary>
        ///  根据查询条件把查询出的数据导出Excle2010中
        /// </summary>
        /// <param name="stringSelect"></param>
        public string ExportTO(string defaultFileName)
        {
            string reslut = "true", info = "";
            try
            {

//注意using的用法;

//OracleDataReader dataReader = DataReader();
                //ExportToWorkbook(dataReader);
                //info = ExportToWorkbook(dataReader);
                //dataReader.Close();

}
            catch (Exception ex)
            {
                reslut = "false";
                info = ex.Message;
            }
            return ReturnData.WriteXml("<result>" + reslut + "</result>" + reslut + "<info>" + info + "</info>");
        }
        /// <summary>
        /// 该方法实现dataReader读取的内容导入excel;
        /// </summary>
        /// <param name="dataReader"></param>
        private static string ExportToWorkbook(OracleDataReader dataReader)
        {
            var excelApplication = new Microsoft.Office.Interop.Excel.Application();

try
            {
                Worksheet workSheet = CreateWorksheet(excelApplication);
                WriteHeader(workSheet, dataReader);
                int rowCount = WriteBody(workSheet, dataReader);
                //格式化表;
                FormatAsTable(workSheet, rowCount, dataReader);
                string destFilePath = "";
                Guid guid = Guid.NewGuid();
                destFilePath = guid.ToString();
                string path = Common.GetServicePath();//返回服务器路径
                string serverpath = path + destFilePath + ".xlsx";  //在服务器端定义Excle 让客户端进行进行下载
                // excelApplication.Save("数据库表.xls");
                excelApplication.Save(serverpath);
                excelApplication.Visible = true;
                return serverpath;
            }
            //保证退出;
            finally
            {
                excelApplication.Quit();
            }
        }

/// <summary>
        /// 创建工作薄和脚本
        /// </summary>
        /// <param name="excelApplication"></param>
        /// <returns></returns>
        private static Worksheet CreateWorksheet(Microsoft.Office.Interop.Excel.Application excelApplication)
        {
            Workbook workBook = excelApplication.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
            Worksheet workSheet = (Worksheet)workBook.Worksheets[1];
            return workSheet;
        }
        /// <summary>
        /// 表的列头
        /// </summary>
        /// <param name="workSheet"></param>
        private static void WriteHeader(Worksheet workSheet, OracleDataReader Reader)
        {
            #region Excle的表头添加数据

workSheet.Cells[1, 1] = "主编号";
            workSheet.Cells[1, 2] = "次级编号";
            workSheet.Cells[1, 3] = "资产名称";
            workSheet.Cells[1, 4] = "规格型号";
            workSheet.Cells[1, 5] = "技术参数";
            #region 隐藏
            workSheet.Cells[1, 6] = "自编号";
            workSheet.Cells[1, 7] = "资产类别";
            workSheet.Cells[1, 8] = "类别名称";
            workSheet.Cells[1, 1] = "成本中心";
            workSheet.Cells[1, 2] = "资产来源";
            workSheet.Cells[1, 3] = "资产名称";
            workSheet.Cells[1, 4] = "规格型号";
            workSheet.Cells[1, 5] = "技术参数";
            workSheet.Cells[1, 6] = "数量";
            workSheet.Cells[1, 7] = "计量单位";
            workSheet.Cells[1, 8] = "计量单位名称";
            workSheet.Cells[1, 9] = "使用状况";
            workSheet.Cells[1, 10] = "经济用途";
            workSheet.Cells[1, 11] = "技术状态";
            workSheet.Cells[1, 12] = "设计能力";
            workSheet.Cells[1, 13] = "能力单位";
            workSheet.Cells[1, 14] = "生产装置";
            workSheet.Cells[1, 15] = "使用单位";
            workSheet.Cells[1, 16] = "使用单位名称";
            workSheet.Cells[1, 17] = "供应商";
            workSheet.Cells[1, 18] = "供应商名称";
            workSheet.Cells[1, 19] = "生产厂家";
            workSheet.Cells[1, 20] = "生产日期";
            workSheet.Cells[1, 21] = "资本化日期";
            workSheet.Cells[1, 22] = "投产日期";
            workSheet.Cells[1, 23] = "资产原值";
            workSheet.Cells[1, 24] = "累计折旧";
            workSheet.Cells[1, 25] = "减值准备";
            workSheet.Cells[1, 26] = "账面折旧年限";
            workSheet.Cells[1, 27] = "已用年限";
            workSheet.Cells[1, 28] = "原资产编号";
            workSheet.Cells[1, 29] = "原资产次级编号";
            workSheet.Cells[1, 30] = "累计折旧";
            workSheet.Cells[1, 31] = "减值准备";
            #endregion

#endregion
            for (int i = 0; i < Reader.FieldCount; ++i)
            {
                workSheet.Cells[1, i] = Reader.GetName(i);
            }
        }
        /// <summary>
        /// dataReader内容写入worksheet;
        /// </summary>
        /// <param name="workSheet"></param>
        /// <param name="dataReader"></param>
        /// <returns></returns>
        private static int WriteBody(Worksheet workSheet, OracleDataReader dataReader)
        {
            int rowIndex = 2;
            object[] values = new object[dataReader.FieldCount];
            while (dataReader.Read())
            {
                #region 给定值添加内容
                workSheet.Cells[rowIndex, 1] = dataReader["主编号"];
                workSheet.Cells[rowIndex, 2] = dataReader["次级编号"];
                workSheet.Cells[rowIndex, 3] = dataReader["资产名称"];
                workSheet.Cells[rowIndex, 4] = dataReader["规格型号"];
                workSheet.Cells[rowIndex, 5] = dataReader["技术参数"];
                #region 隐藏
                workSheet.Cells[rowIndex, 6] = dataReader["自编号"];
                workSheet.Cells[rowIndex, 7] = dataReader["资产类别"];
                workSheet.Cells[rowIndex, 8] = dataReader["类别名称"];
                workSheet.Cells[rowIndex, 9] = dataReader["成本中心"];
                workSheet.Cells[rowIndex, 10] = dataReader["资产来源"];
                workSheet.Cells[rowIndex, 11] = dataReader["数量"];
                workSheet.Cells[rowIndex, 12] = dataReader["计量单位"];
                workSheet.Cells[rowIndex, 13] = dataReader["计量单位名称"];
                workSheet.Cells[rowIndex, 14] = dataReader["使用状况"];
                workSheet.Cells[rowIndex, 15] = dataReader["经济用途"];
                workSheet.Cells[rowIndex, 16] = dataReader["技术状态"];
                workSheet.Cells[rowIndex, 17] = dataReader["设计能力"];
                workSheet.Cells[rowIndex, 18] = dataReader["能力单位"];
                workSheet.Cells[rowIndex, 19] = dataReader["生产装置"];
                workSheet.Cells[rowIndex, 20] = dataReader["使用单位"];
                workSheet.Cells[rowIndex, 21] = dataReader["使用单位名称"];
                workSheet.Cells[rowIndex, 22] = dataReader["供应商"];
                workSheet.Cells[rowIndex, 23] = dataReader["生产厂家"];
                workSheet.Cells[rowIndex, 24] = dataReader["生产日期"];
                workSheet.Cells[rowIndex, 25] = dataReader["投产日期"];
                workSheet.Cells[rowIndex, 26] = dataReader["资产原值"];
                workSheet.Cells[rowIndex, 27] = dataReader["累计折旧"];
                workSheet.Cells[rowIndex, 28] = dataReader["减值准备"];
                workSheet.Cells[rowIndex, 29] = dataReader["原资产编号"];
                workSheet.Cells[rowIndex, 30] = dataReader["资产原值"];
                workSheet.Cells[rowIndex, 31] = dataReader["累计折旧"];
                workSheet.Cells[rowIndex, 31] = dataReader["减值准备"];
                #endregion
                rowIndex++;

#endregion
                dataReader.GetValues(values);
                for (int i = 0; i < values.Length; ++i)
                {
                    workSheet.Cells[rowIndex, i] = dataReader[values[i].ToString()];
                }
            }
            return rowIndex;
        }

private static void FormatAsTable(Worksheet workSheet, int totalRows, OracleDataReader reader)
        {
            Range topLeft = (Range)workSheet.Cells[1, 1];
            Range bottomRight = (Range)workSheet.Cells.get_Item(totalRows - 1, reader.FieldCount);
            Range range = workSheet.get_Range(topLeft, bottomRight);
            //listObject对象和方法;
            ListObject listObject = workSheet.ListObjects.Add(XlListObjectSourceType.xlSrcRange, range, null, XlYesNoGuess.xlYes, null);
            listObject.TableStyle = "TableStyleMedium10";

}
        #endregion

C#导出的更多相关文章

  1. premere cs4绿色版 安装 并且 视频导出 讲解

    最近室友,开始在玩视频剪辑,用的是 premere cs4 绿色版.让他遇到的最大问题也是我之前遇到的最大问题,就是视频导出. 所以我在这里上传一套自己的一点点经验吧. 接下来,我就总结一下 我是怎么 ...

  2. C# Excel导入、导出【源码下载】

    本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...

  3. ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入

    系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...

  4. Hawk 5.1 数据导入和导出

    除了一般的数据库导入导出,Hawk还支持从文件导入和导出,支持的文件类型包括: Excel CSV(逗号分割文本文件) TXT (制表符分割文本文件) Json xml Excel 目前来看,Exce ...

  5. CRL快速开发框架系列教程十(导出对象结构)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  6. CRL快速开发框架系列教程九(导入/导出数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  7. C#向PPT文档插入图片以及导出图片

    PowerPoint演示文稿是我们日常工作中常用的办公软件之一,而图片则是PowerPoint文档的重要组成部分,那么如何向幻灯片插入图片以及导出图片呢?本文我将给大家分享如何使用一个免费版Power ...

  8. C#中将DataTable导出为HTML的方法

    今天我要向大家分享一种将DataTable导出为到HTML格式的方法.有时我们需要HTML格式的输出数据, 以下代码就可以帮助我们达到目的,. 首先,我们要绑定DataTable和 DataGridV ...

  9. C#使用Aspose.Cells导出Excel简单实现

    首先,需要添加引用Aspose.Cells.dll,官网下载地址:http://downloads.aspose.com/cells/net 将DataTable导出Xlsx格式的文件下载(网页输出) ...

  10. 利用poi导出Excel

    import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.r ...

随机推荐

  1. 学习ios键盘和textfield之间操作体会

    所需要计算就是,键盘移动以后是否遮挡住了textfield,需要用到的计算公式: int offset = 键盘的高度-(self.frame.size.height - self.textfiled ...

  2. Spark工程开发前台技术实现与后台函数调用

    Spark是一个通用的大规模数据快速处理引擎.可以简单理解为Spark就是一个大数据分布式处理框架.基于内存计算的Spark的计算速度要比Hadoop的MapReduce快上50倍以上,基于磁盘的计算 ...

  3. DBA_Oracle Erp重启Database/Application/Concurrent/Apache(案例)

    2014-12-27 Created By BaoXinjian

  4. PLSQL_解析过程及硬解析和软解析的区别(案例)

    2014-08-11 Created By BaoXinjian

  5. ubuntu用终端卸载软件

    我们需要知道我们要卸载的软件的名称,sudo apt-get autoremove --purge 之后输入软件名称,可以先输入前缀之后按tab,会自动补全. 现在不要急着回车,我们来讲解一下这个命令 ...

  6. CF109 C. Lucky Tree 并查集

    Petya loves lucky numbers. We all know that lucky numbers are the positive integers whose decimal re ...

  7. python(19)编码问题

    转载链接:http://blog.csdn.net/lxdcyh/article/details/4018054 python的编码问题,一直都让人很头疼,今天就整理下python的编码知识. 首先: ...

  8. 小白也能用Git管理团队项目了:百度云同步+Git Extensions+Git Source Control Provider

    百度云同步 百度云同步,会将本地的某个文件目录和云端进行同步.如果在本地将这个同步的目录设置为Git的中心服务器,那么本地push到中心服务器的内容也会被同步到云端.其他开发者只要也进行相同的设置,就 ...

  9. TextView的属性列表

    网上收集和自己整理的TextView控件中可选择的属性列表,经常可以用到的: android:autoLink       设置是否当 文本为URL链接/email/电话号码/map时,文本显示为可点 ...

  10. ios6和ios7禁止屏幕旋转

    ios6和ios7禁止屏幕旋转 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOr ...