Excel!!求大神帮忙!销售内勤Excel130件以上且满意率60%以上得10分的函数!

项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下。

使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。NPOI是构建在POI ,需要在服务器端装Office,且及时更新它,以防漏洞,还需要设定权限允许.NET访问COM+,如果在导出过程中出问题可能导致服务器宕机。
2、Excel会把只包含数字的列进行类型转换,本来是文本型的,Excel会将其转成数值型的,比如编号000123会变成123。
3、导出时,如果字段内容以“-”或“=”开头,Excel会把它当成公式进行,会报错。
4、Excel会根据Excel文件前8行分析数据类型,如果正好你前8行某一列只是数字,那它会认为该列为数值型,自动将该列转变成类似 mon 20 /// 导出Excel文件,自动返回可下载的文件流

excel表格中每一行数据,其实是以上格式的xml,有规律,就可以很容易的去解析。

使用模版的方式,最简单的模版,就是将表头列出,然后再导入数据。第一行为表头,从第二行开始写入数据。导入过程可参考前面的解决方案。

列出常见的几种解决方案,在实际项目中,用哪一种,还是根据项目环境来决定吧。

最近项目中用到了Excel导出,导入的功能,就想着将常见的方式总结一下。也许还有遗漏,请留言,将你知道也分享给大家,谢谢。

如果该文章对你有所帮助,不妨推荐一下,让更多的人知道,毕竟分享是件快乐的事情。

代码下载:链接: 密码:axli

  啰嗦一下:本人所在公司从事碟式斯特林太阳能发电设备的研发与销售。单台设备图如下:

  工作原理如下:整个设备大致可分为五个部分,

    1、服务器,负责气象、发电等数据存取,电、网连接等处理;

    2、气象站,通过光感应器实时获取气象数据,传送至服务器

    3、碟型镜面,反射阳光热量,均匀聚焦到350mm直径的圆形范围内——发动机热头大小;

    4、斯特林发动机,吸收镜面反射热量,通过内部气体膨胀、收缩带动发动机发电;

    5、通信线,连接系统各个部分,使其运行正常。

  对于这样一台设备,要使其高效发电,出气象条件要好之外,对每块镜片的最终安装位置要求极高。因为所有的支撑架子、镜片的形状、曲率等参数不可能做到一模一样,所以每台设备在镜片初步安装之后都必须进行精细的调整。具体技术问题这里暂不讨论。

  而对于一个电站,由几十或成百上千台碟子组成,除了镜片调试以外,还有一个重要的问题需要解决:所有碟子的布局。因为,若碟子之间的距离过小,会有遮挡,造成部分镜面没有阳光照射,发动机吸收热量减少,影响发电效率,严重的话会使其停止工作;而若距离过大,解决遮挡的同时,会造成整个电站面积过大,意味着通信线与土地的代价增加。因此,在这之间寻求一种折中的解决方案至关重要,做到尽量高效,低成本。

  针对斯特林碟式太阳能发电站的碟子位置布局问题,公司要求做一个软件,主要功能是分析历史电站的发电、气象、电价、布线等数据,并结合拟定的碟子布局模型,比较实际与模拟结果,选择最佳方案。

  回归正题:文件存储在Excel文件中,因此第一步是能够在程序中方便地读取表格数据,这里用的是VC6.0 MFC。

  2、建立一个MFC基于对话框的应用程序工程,名称自己定,这里取名为"Solar",添加一个按钮、一个列表控件,分别取名为"Model2","List1",并为后者添加成员变量"m_ExcelData"。

假如这个条件不通过就不能运行起程序。在程序的出口处CSolarApp:: ExitInstance()函数return语句之前加入下面这句话:

来释放COM支持库,这样对COM库的支持就已完成。

  4、下面要从Office的安装目录中找到对VC操作excel文件的动态库,在某些版本下这个文件是Excel8.olb或Excel9.olb,在我的版本中是excel.exe这个exe也是动态库的形式,是微软公司主要的文件结果之一。选择VC的View(查看)菜单里面的类向导ClassWizad命令,会弹出一个对话框;然后点击Add Range,点击OK按钮。会在程序中生成一个excel.h和excel.cpp文件,这些文件中包含了刚才我们选择的几个类的代码。下面介绍一下这几个类:

  1>_Application:这里的Application就是Excel本身,众所周知,一个Excel可以包含多个工作簿,每个工作簿又可以包含多个工作表,而每个工作表又可以包含多个区域或者图表,所以这里他们是树型的结构关系,而application最基本的一个功能就是找到它的子项工作簿。果然,我们在引入我们程序的Application类中看到了这样的成员函数:GetWorkbooks()。

  2> Workbooks:这个对象是一个容器对象,它里面存放着所有打开的工作簿。因此,我们可以猜测它一定有添加,查找,打开/关闭工作簿的功能。(本程序中使用excel的一个xlt模板来生成一个xls文件就是使用了这个容器对象的添加功能。)

  3> _Workbook:这是一个工作簿,也就相当于一个xls文件。Excel可以同时打开多个工作簿,所以工作簿之间必定能够互相切换,每个工作簿可以关联工作表容器并获得工作表的索引。

  6> Rang:就是我们看到的能选中的方框的大小。而我们所要作的操作基本上是以区域为单位进行的。

  5、准备工作做好之后,接下来开始实现按钮功能:按下之后读取Excel表格数据,并显示在列表控件中。这里只是进行简单地显示,没有给出具体的处理过程及结果图像。目标Excel文件数据如下,行、列分别为30、9(包括序号)。

  在头文件"afxstd.h"中添加以下几个头文件(有些电脑环境可能不必全部加),注意别重复添加某些头文件。

  若编译报重定义错误,解决方法是在"excel.h"头文件中的头部添加:

判断是否是合并的单元格

 代码中字符串变量strItemName是全局变量,在文件开头声明:

  1> 代码中79-92行是为列表添加属性列及名称,第一个属性序号("Index")是人为命名并添加,不是必须的;从第二个属性列开始为表格属性;

  2> 代码中23-39行是文件打开过程,选择Excel文件后,下面代码会根据完整文件名进行数据读取;

  3> 在VC数组及列表控件中,下标从0开始,而读取Excel表格数据时,索引从1开始。

 至此,简单的编程过程已完成,重新生成解决方案,编译、运行,结果如下:

小心、小心、再小心,但还是避免不了Excel文件被损坏,那你是将受损文件弃之不顾呢,还是想办法急救呢?如果属于后一种的话,你将从下面的内容中得到惊喜。

  这种方法就是将受损的Excel工作簿重新保存,并将保存格式选为SYLK格式;一般情况下,大家要是可以打开受损Excel文件,只是不能对文件进行各种编辑和打印操作的话,那么笔者建议大家首先尝试这种方法,来将受损的Excel工作簿转换为SYLK格式来保存,通过这种方法可筛选出文档中的损坏部分。

  最新版本的Excel具有直接修复受损文件的功能,大家可以利用Excel新增的“打开并修复”命令,来直接检查并修复Excel文件中的错误,只要单击该命令,Excel就会打开一个修复对话框,单击该对话框中的修复按钮就可以了。这种方法常常适合用常规方法无法打开受损文件的情况。

  遇到无法打开受损Excel文件时,大家可以尝试使用Word程序来打开Excel文件,这种方法是利用Word直接读取Excel文件功能实现的,它通常适用于Excel文件头没有损坏的情况,下面是具体的操作步骤:  

(1)运行Word程序,在出现的文件打开对话框中选择需要打开的Excel文件;  (2)要是首次运用Word程序打开Excel文件的话,大家可能会看到“Microsoft Word无法导入指定的格式。这项功能目前尚未安装,是否现在安装?”的提示信息,此时大家可插入Microsoft Office 安装盘,来完成该功能的安装任务; (3)接着Word程序会提示大家,是选择整个工作簿还是某个工作表,大家可以根据要恢复的文件的类型来选择;  (4)一旦将受损文件打开后,可以先将文件中损坏的数据删除,再将鼠标移动到表格中,并在菜单栏中依次执行“表格”/“转换”/“表格转换成文字”命令;  (5)在随后出现的对话框中选择制表符为文字分隔符,来将表格内容转为文本内容;  (6)在Word菜单栏中依次执行“文件”/“另存为”命令,将转换获得的文本内容保存为纯文本格式文件;  (7)运行Excel程序,来执行“文件”/“打开”命令,在弹出的文件对话框中将文字类型选择为“文本文件”或“所有文件”,这样就能打开刚保存的文本文件了;  (8)随后大家会看到一个文本导入向导设置框,大家只要根据提示就能顺利打开该文件,这样大家就会发现该工作表内容与原工作表完全一样,不同的是表格中所有的公式都需重新设置,还有部分文字、数字格式丢失了。

倘若Excel程序运行出现故障而导致文件受损的话,大家就可以使用这种修复方法了。一旦在编辑文件的过程中,Excel程序停止响应的话,大家可以强制关闭程序;要是由于突然断电导致文件受损的话,大家可以重新启动计算机并运行Excel,这样Excel会自动弹出“文档恢复”窗口,并在该窗口中列出了程序发生意外原因时Excel已自动恢复的所有文件。大家可以用鼠标选择每个要保留的文件,并单击指定文件名旁的箭头,再按下面的步骤来操作文件:  

(1)想要重新编辑受损的文件的话,可以直接单击“打开”命令来编辑;  (2)想要将受损文件保存的话,可以单击“另存为”,在出现的文件保存对话框中输入文件的具体名称;程序在缺省状态下,将文件保存在以前的文件夹中;  (3)想要查看文件受损修复信息的话,可以直接单击“显示修复”命令;  (4)完成了对所有要保留的文件相关操作后,大家可以单击“文档恢复”任务窗格中的“关闭”按钮;  

Excel程序在缺省状态下是不会启用自动修复功能的,因此大家希望Excel在发生以外情况下能自动恢复文件的话,还必须按照下面的步骤来打开自动恢复功能:

(1)在菜单栏中依次执行“工具”/“选项”命令,来打开选项设置框;  (2)在该设置框中单击“保存”标签,并在随后打开的标签页面中将“禁用自动恢复”复选框取消;  (3)选中该标签页面中的“保存自动恢复信息,每隔X分钟”复选项,并输入指定Excel程序保存自动恢复文件的频率; (4)完成设置后,单击“确定”按钮退出设置对话框

我要回帖

更多关于 销售内勤Excel 的文章

 

随机推荐