在C#中导出数据到Excel

简介: 在C#中对Excel的操作是非常方便的,写好一个Excel的模板文件,在程序中对模板就行操作。示例代码如下: /// /// 生成Excel文件 /// public void HinBanInfoXmlFile() ...

在C#中对Excel的操作是非常方便的,写好一个Excel的模板文件,在程序中对模板就行操作。示例代码如下:

	/// <summary>
        /// 生成Excel文件
        /// </summary>
        public void HinBanInfoXmlFile()
        {
            //模版路径
            string tempFilePath = AppDomain.CurrentDomain.BaseDirectory + "Model\\Template\\AA.xlt";

            // Excel生成
            ApplicationClass app = new ApplicationClass();
            app.DisplayAlerts = false;

            try
            {
                // 打开创建文件
                Workbook book = app.Workbooks.Open(tempFilePath, Missing.Value, true, Missing.Value, Missing.Value,
                    Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                    Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                Worksheet theWorkSheet = (Worksheet)book.ActiveSheet;

                //设置头部信息
                theWorkSheet.get_Range("MakeDate", Missing.Value).Value2 = DateTime.Now;
                theWorkSheet.get_Range("MakeTime", Missing.Value).Value2 = DateTime.Now;
                theWorkSheet.get_Range("ChargeId", Missing.Value).Value2 = loginEmp.empCode;
                theWorkSheet.get_Range("ChargeName", Missing.Value).Value2 = loginEmp.empName;

                int iRow = 7; // 第一行为标题,从第二行开始写入
                for (int i = 0; i < this.dataList.Length; i++)
                {
                    HinBanInfo model = dataList[i]; // 行数据
                    if (i < this.dataList.Length - 1)
                    {
                        ((Range)theWorkSheet.Rows.get_Item(iRow, Missing.Value)).Copy(Missing.Value);
                        ((Range)theWorkSheet.Rows.get_Item(iRow, Missing.Value)).Insert(XlInsertShiftDirection.xlShiftDown, Missing.Value);
                    }
                    //对单元格设置显示的数据
                    theWorkSheet.get_Range("A" + iRow, Missing.Value).Value2 = model.flag;
                                  
                   iRow++;
                    //写进度文件
                    ProgressWatch.writeProgress(fileName, i * 100 / dataList.Length, ProgressStatus.Running);
                }

                /// <summary>
                /// Excel格式保存
                /// </summary>
                book.SaveAs(fileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlExcel8, Missing.Value, Missing.Value, Missing.Value
                    , Missing.Value, XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                // 完成后关闭文件
                app.ActiveWorkbook.Close(false, null, null);
                // 如果停止删除文件,否则进度完成
                if (ProgressWatch.isStop(fileName))
                    ProgressWatch.deleteServerFile(fileName);
                else
                    ProgressWatch.writeProgress(fileName, 100, ProgressStatus.Complete);
            }
            catch (Exception e)
            {
                //关闭
                if (app != null && app.ActiveWorkbook != null)
                    app.ActiveWorkbook.Close(false, null, null);
                ProgressWatch.writeProgress(fileName, 0, ProgressStatus.Stop);
                msgLog = msgLog + "->失败!" + e.Message;
            }
            finally
            {
                // 写日志
                Log.write(logType, msgLog, loginEmp);
                // 安全退出
                app.Quit();
                app = null;
            }
        }
在模板中可以对单元格的样式进行修改。

目录
相关文章
|
4月前
|
Python
如何根据Excel某列数据为依据分成一个新的工作表
在处理Excel数据时,我们常需要根据列值将数据分到不同的工作表或文件中。本文通过Python和VBA两种方法实现该操作:使用Python的`pandas`库按年级拆分为多个文件,再通过VBA宏按班级生成新的工作表,帮助高效整理复杂数据。
|
4月前
|
数据采集 数据可视化 数据挖掘
用 Excel+Power Query 做电商数据分析:从 “每天加班整理数据” 到 “一键生成报表” 的配置教程
在电商运营中,数据是增长的关键驱动力。然而,传统的手工数据处理方式效率低下,耗费大量时间且易出错。本文介绍如何利用 Excel 中的 Power Query 工具,自动化完成电商数据的采集、清洗与分析,大幅提升数据处理效率。通过某美妆电商的实战案例,详细拆解从多平台数据整合到可视化报表生成的全流程,帮助电商从业者摆脱繁琐操作,聚焦业务增长,实现数据驱动的高效运营。
|
6月前
|
存储 安全 大数据
网安工程师必看!AiPy解决fscan扫描数据整理难题—多种信息快速分拣+Excel结构化存储方案
作为一名安全测试工程师,分析fscan扫描结果曾是繁琐的手动活:从海量日志中提取开放端口、漏洞信息和主机数据,耗时又易错。但现在,借助AiPy开发的GUI解析工具,只需喝杯奶茶的时间,即可将[PORT]、[SERVICE]、[VULN]、[HOST]等关键信息智能分类,并生成三份清晰的Excel报表。告别手动整理,大幅提升效率!在安全行业,工具党正碾压手动党。掌握AiPy,把时间留给真正的攻防实战!官网链接:https://www.aipyaipy.com,解锁更多用法!
|
4月前
|
Python
Excel中如何批量重命名工作表与将每个工作表导出到单独Excel文件
本文介绍了如何在Excel中使用VBA批量重命名工作表、根据单元格内容修改颜色,以及将工作表导出为独立文件的方法。同时提供了Python实现导出工作表的代码示例,适用于自动化处理Excel文档。
|
4月前
|
Python
将Excel特定某列数据删除
将Excel特定某列数据删除
|
11月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
1957 10
|
5月前
|
Java 测试技术 数据库
spring号码归属地批量查询,批量查询号码归属地,在线工具,可按省份城市运营商号段分类分开分别导出excel表格
简介:文章探讨Spring Boot项目启动优化策略,通过自定义监听器、异步初始化及分库分表加载优化等手段,将项目启动时间从280秒缩短至159秒,提升约50%,显著提高开发效率。
|
9月前
|
物联网 数据处理 C#
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据。在自动化、物联网以及工业控制行业中,上位机开发是一项重要的技能。本教程主要介绍使用C#进行上位机开发,重点在于串口通信和数据处理。
1737 82
|
9月前
|
分布式计算 Hadoop 大数据
从Excel到Hadoop:数据规模的进化之路
从Excel到Hadoop:数据规模的进化之路
186 10
|
11月前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
148 11

热门文章

最新文章