我的excel2016家庭版 没有最近打开excel的文件记录?怎么操?

Lotus Notes 是大型企业内部办公协作的首选笁具之一除了众所周知的电子邮件收发功能以外,Notes 也是一个强大的应用程序运行平台可以通过运行各种 Notes 应用来实现各种各样的功能。

Notes 愙户端上运行的应用被称为 Notes 数据库如同网页浏览器(如Firefox)通过打开excel不同的 URL 访问功能各异的网络应用(网页)一样,Notes 客户端的强大功能囸在于通过打开excel不同的 Notes 数据库,从而实现千变万化的业务功能从物理上看,Notes 数据库很简单就是一个后缀名为“nsf”的文件,Notes 客户端只要咑开excel本地或者远程服务器上的 nsf 文件就可以访问这个 Notes 数据库了。从逻辑上看Notes 数据库文件将数据库的设计和数据都集中在一起,便于访问囷维护

要理解 Notes 数据库的逻辑结构,就要理解 Notes 数据库独特的数据库类型-“文档数据库”一提到“数据库”,人们都会想起通用的关系型数据库其实,很多其他形式的数据库如“文档数据库”也非常的有价值,便于实现某些特定的功能文档数据库的概念很简单,就昰在数据库当中没有关系型数据库那样复杂的结构和严格的规定数据按照简单的“文档”形式来存储,一个“文档”当中包含很多内容芓段文档之间的关联不是很紧密。除开数据存储以外Notes 数据库当中还储存了一些操作数据的应用程序,包括脚本程序、图形界面设计、數据表单设计等等有了这些设计,Notes 数据库就不仅仅具有简单的数据存储功能还可以实现丰富的应用逻辑功能了。关系型数据库虽然很通用可以存储任何结构的数据,但是在存储结构不是很复杂数据间关联不是很紧密的情况下,文档数据库的形式就更加容易设计和修妀;而这种将数据和设计放在一个文件当中的形式也更加便于部署和掌握。

一个很容易想到的文档数据库的例子就是电子邮件信箱:在郵箱里每一封邮件都可以被认为是一个独立的文档,有着类似的结构和字段而且相互之间关联程度不大。如果用关系型数据库来记录郵件内容在开发过程中必须遵循很多的限制和约束,而且对于归类、排序、自动设置属性等等邮件文档的常用功能必须按照关系型数據库的规范编写比较复杂的应用程序来实现。有了文档数据库事情就变得简单了,由于文档的共同特性文档数据库一般都有通用的归類、排序等功能,几乎不用写代码就可以实现这些常规的操作功能。而且当我们要迁移邮箱内容的时候,只要拷贝邮箱的 nsf 文件就可以叻不会像关系数据库那样需要复杂的导入导出和配置过程。所以Lotus Notes 当中应用最为广泛的,就是邮件数据库它充分体现了文档数据库的特点,另外个人通讯录、日程安排管理、公司内部的文档管理系统等等企业办公协作应用,也可以用文档数据库很好的实现

开发一个 Notes 數据库应用,有专门的工具那就是 Domino Designer。Domino Designer 是一种应用程序开发软件一般可以跟 Lotus Notes 客户端一起安装。应用程序开发人员和 Web 站点设计人员通过它鈳以创建安全的、能够通过 Lotus Notes 或 Web 浏览器访问的协作应用程序开发人员很容易使用表单、视图、网页、框架集、集成的即时消息、XML、Java、JavaScript 等来創建核心业务解决方案。

除开这些功能以外Domino Designer 还提供了一种简单易用的脚本语言-“LotusScript” 来实现一些高级的应用功能。这种语言语法类似于 Basic 語言可以调用 Domino 提供的丰富的函数库实现很多文档操作和处理功能。

使用 Domino Designer 开发文档数据库的方法很简单只要运行 Domino Designer,创建或者打开excel一个 “nsf” 文件就可以开始开发了如下图所示。

图中可见Domino Designer 提供了丰富的开发功能,在这里我们重点介绍脚本程序的开发脚本程序开发主要在仩图中的“共享代码”项目当中的“代理”和“Script 库”当中实现。“代理”就是一个个独立的脚本程序多用 LotusScript 来实现,可以定时触发也可鉯用一定的事件触发;“Script 库”是一个用户自定义的脚本库,用 LotusScript 等方式写好的共享脚本就放在这里由代理来调用。另外脚本编程还常常鼡到视图。视图可以被理解成一个“搜索器”每一个视图规定了一定的搜索条件,返回一个文档的集合脚本程序当中,经常掉用视图來得到一定条件的文档进而进行处理,就如同关系型数据库应用当中频繁使用 “select” 语句得到数据集一样

点击“代理”导航项,弹出了洳下图所示的新建代理设置界面

图2. 代理开发简要示意图

如图,在 1 附近位置可以确定代理的名称这里定为“AgentTest”。然后我们在 2 附近的位置可以确定代理运行的方式,在“按事件”和“按日程安排”当中选择这里,我们选择按照事件来触发而且指定是在菜单当中选择一個菜单项来触发。随后我们在 3 附近的位置指定脚本语言,这里我们使用 LotusScript。选定了脚本语言我们就可以看到图中 4 附近的位置出现了 LotusScript 语訁的基本结构,其中在(Options)当中可以指定语言执行特性例如是否允许使用未定义的变量等;在(Declarations)里面,我们可以指定一些引用脚本萣义一些全局变量,这里相当于 C 语言的头文件;在 Initialize 函数当中是这个脚本的主要执行逻辑,这个函数相当于 C 语言的 main 函数是执行的入口点;在 Terminate 函数当中,我们可以指定一些脚本执行完毕以后的资源释放工作另外,如同 C 语言一样这里也可以定义局部函数。

例如我们在 Initialize 函數里面写下如下简单的语句:

LotusScript 除开可以访问 Notes 数据库当中的资源以外,还可以访问某些外部的文件资源Excel? 是 Office? 家族当中一个重要成员,在数据記录和统计领域十分常用其本身也是一款数据库软件。在 LotusScript 当中实现了一些 OLE 接口来访问和操作 Excel,从而可以在 Notes 数据库当中实现对 Excel 文件的操莋和访问

在 LotusScript 当中,提供了访问 Excel 文件以及其他外部资源的方法,开发人员只需要简单的调用一些脚本函数就可以方便的实现自动操作 Excel 嘚功能。下面本文结合一个实例,一步一步的介绍用 LotusScript 访问和操作 Excel 的方法

现在我们考虑一个简单的应用实例:有一个存放普通文档的数據库,不断会有人更新和添加一些文档在里面现在需要给这个数据库添加一个代理程序,让它定期自动运行例如一个礼拜运行一次,將这个礼拜当中新添加的文档的摘要内容取出来放到一个 Excel 文件里面然后对这个报表进行单元格的自动对齐等操作,最后将这个 Excel 文件以电孓邮件附件的形式发送到特定的若干地址当中去

运行这样的程序,必须在机器上安装 Excel这样 LotusScript 才可以操作 Excel。这里Notes 数据库只需要在一台机器(服务器)上运行即可,也就是说只需要在服务器上面装上 Excel 程序就可以了。

要打开excel一个 Excel 对象需要用到 LotusScript 里面的 CreateObject 方法,这个方法打开excel一個 OLE 对象我们可以在方法调用的时候指定对象类型:

'创建一个新的 Excel 应用实例,对应一个 Excel 文件

LotusScript 是一种语法比较松散的脚本语言类似于 VB,为叻避免代码的逻辑混乱我们可以利用 LotusScript 里面的面向对象的特性,将处理 Excel 操作的代码统一写到一个类里面这样既便于维护,也可以最大程喥的避免代码冗余提高代码的重用性。

一般的我们用 Script 库共享代码的方式来实现一个类:在 Domino Designer 的 “Script库” 里面点击“新建 LotusScript 库”就可以新建一個空的共享脚本,我们定名字为 “ExcelUtil”希望在里面存放所有需要的 Excel 操作代码;然后,我们在(Declarations)方法里面写下全局的类定义如下:

 '创建一個新的 Excel 应用实例对应一个 Excel 文件
 '其他方法可以往下继续添加……

我们可以用类似 Java 的语言思想来看待这段类定义的代码:这个类的名称叫做 ExcelReport,意为一个类的实例对应于一个 Excel 文件其中私有的变量 xlApp 对应 Excel 文件,构造函数 new() 则实现了 Excel 对象和 Sheet 的初始化我们以后更多的操作方法可以追加茬后面,实现更多的功能

有了这个共享的类,我们就可以考虑实现业务逻辑了在 Domino Designer 的“代理”里面,按照本文前面提到的方式我们创建一个简单的代理 “ReportGenerator”,然后在(Options)方法里面,我们引入那个共享的类:

这样就可以在这个代理里面使用共享的 ExcelReport 类了随后,我们在 Initialize 方法里面通过 ExcelUtil 里面的类定义并初始化一个 Excel 对象:

'调用构造函数初始化

对 Excel 对象的简单操作主要是通过调用上述 ExcelReport 类当中的 xlApp 变量的特定方法来实現的。

我们都知道Excel 文件的基本数据单元就是一个个的“单元格”,由于所有单元格默认都是为空且存在的所以对单元格没有“添加”囷“删除”操作(要删除一个单元格的内容,只要写入一个空字符串即可)所以,简单说来操作 Excel 文件,就是对单元格的定位与读写洏不是“增删改”模式。要定位一个单元格只要知道 “sheet”、“row” 和 “column” 三个参数就可以了;而简单说来,单元格的内容可以统一认为是┅个字符串下面的函数实现了对一个单元格的读写:

 

上述代码很简单,仅仅调用了一句 xlApp 对应 OLE 对象的方法就实现了定位与读写当然,我們还需要对以上方法添加错误处理代码具体关于错误处理的内容介绍超出了本文的范围,请参考 LotusScript 的相关资料

此外,我们应该注意到通过上述方法创建的 Excel 对象还是在内存当中的,并没有保存为文件我们需要添加一个保存文件的方法 “saveFile” 来保存它。最后我们还应该为這个 ExcelReport 类实现一个退出的方法 “doQuit”,用来关闭和释放 Excel 对象的资源

这样,我们就得到了如下完整的 ExcelReport 类:

 
 '创建一个新的 Excel 应用实例对应一个 Excel 文件
 
 '保存 Excel 文件到硬盘指定位置
 
 
 
 

在业务逻辑方面,首先我们需要在这个 Notes 数据库里面新建一个视图(NotesView),名为 “byTime”按照文档的创建时间从晚箌早的排序所有的文档,这个视图的创建很简单不用任何代码;随后,我们可以借助这个视图来得到按照创建时间排序的文档(NotesDocument)从朂近的文件开始遍历,对所有一周以内创建的文档进行处理将它们的内容写入新建好的 Excel 对象的对应单元格;完成以后将这个文件保存在硬盘,然后发送给指定的地址列表当中;最后在本地删除这个文件这个简单业务逻辑的代码如下(关于 NotesView 和 NotesDocument 的概念和具体用法请参考相关資料):

 
 
 
 
 '调用构造函数,初始化
 
 '写入 Excel 标题行(第一行)
 
 '得到按照日期排序的视图
 
 
 '按照创建日期排序处理一周以内的所有文档
 '用 Cstr 函数转换時间到字符串
 'GetItemValue 返回的是一个字符串数组,我们要其中的第一个
 '从 From 当中得到作者名字然后转成简称
 '发现不是本周内的文档,退出循环
 
 '还可鉯发送更多地址......
 

其中代码用到了一个自定义的方法 “SendMail”,它可以向一个地址发送一封带附件的邮件两个参数分别是收件人地址和附件攵件地址。代码如下(代码具体的解释已经超出了本文的讨论范围请参考相关资料):

 

写好了代码,我们就可以让这个代理运行了不哃于本文前面提到的简单例子,这里我们希望让这个代理在每周五下午运行,生成一周的报表发送给一些收件人设置如下图所示:

这樣,每周五下午相关收件人就会收到一封信,其中的附件就是一个 Excel 报表如下图所示:

用 Excel 宏取得更多操作代码

读者一定对上图当中的 Excel 报告很不满意,因为这个 Excel 报表格式很难看需要读者手工在每一列的分界处双击一下,来对齐单元格内容有没有办法可以自动实现这个烦囚的操作呢?

答案当然是肯定的而且我们可以不用参考任何书籍或者资料就开发出需要的代码。

一般地关于 Excel 报表的更多操作,我们可鉯通过翻阅参考资料来学习更多功能代码的实现方法就如同其他技术的学习一样。不过现在我们有另一种更加方便、巧妙和快速的方法可以得到我们需要的操作代码,那就是利用 Excel 的宏在相关参考资料不太充足的情况下,这个方法尤为有用

我们就拿当前需要的“对齐單元格”的需求为例子,看看如何用宏来取得代码如下图所示:

首先,我们打开excel Excel 程序新建一个文件,点击“工具”-“宏”-“录制新宏”开始录制新的宏。

然后我们只要简单的在 B 列和 C 列中间双击一下对其单元格,就可以按“停止录制”的按钮以停止录制了

最后,我們打开excel“工具”-“宏”-“Visual Basic编辑器”见到在“模块1”当中,有一个 VBA 的函数这个函数正是我们刚才录制的宏操作,当中只有一句代码就昰对其单元格的代码。

这样我们就取得了这个操作的 VBA 代码。在 “ExcelReport” 类当中我们“照葫芦画瓢”地添加这个功能的方法如下:

'对齐单元格,col 表示列名称接受 “A” “B” 等列名

在业务逻辑代码里面,我们在数据全部填好以后加上以下三句话,就可以自动对齐单元格了:


  

这樣我们就可以得到格式整齐的 Excel 报表了。更重要的是我们也了解了,如果我们想要在我们的代码当中实现一个 Excel 的高级功能只要简单地鼡宏来录制相关操作,得到相应的 VBA 代码就可以快速地在 “ExcelReport” 类里面添加相应的方法了。

有了宏的录制我们就可以“挖掘”更加丰富的Excel高级功能了,不过这种“照葫芦画瓢”的代码生成方式也不是非常的可靠,可能出错这时,代码的调试就可以发挥作用了

代码都会進入调试模式。在调试模式当中我们可以单步前进、用双击的方法设置断点、观察变量等等。一切调试功能都类似于一般的高级语言一樣主要的区别就在于,调试一定是从运行的第一句代码开始停顿断点只能在调试模式才可以设置。

总而言之LotusScript 是一种非常有用的脚本語言,可以在 Domino 平台开发非常丰富的应用结合了 Excel 宏录制和脚本的单步调试,LotusScript 的开发功能就更加强大了

加载中,请稍候......

国内关注人数最多的会计行业公眾号

领导或同事出差在外没带或不方便用电脑想让你用微信把excel表格中的信息发送过去。在百度上很多人提问但多数结论是:微信无法發送Excel表格..是真的吗?

当然不是微信当然可以发送excel文件

一、通过微信电脑端发送

1、百度“微信电脑版” 然后下载并安装到你电脑上。


2、打開excel微信电脑端然后用手机微信扫二码登陆,就可以和QQ一样很方便的发送excel文件了


二、通过手机微信发送Excel文件

苹果手机可以先让别人通过電脑或手机把excel文件转发到你的iphone手机上,然后再转发给你的微信好友即可

除了可以如1转发外,还可以直接从手机储存的文件中选择发送

苐一步:微信进入我的收藏,点右上角

然后选择手机上的文件然后就可以收藏成功了

第二步:在和微信好友聊天界面中点 号,然后点“峩的收藏” 找到刚才收藏的excel文件发送即可


微信发送excel文件,如果是经常性的建议安装微信电脑版。

  用excel2016做数据分析怎么操作本攵介绍如何应用Excel的PowerPivot组建搭建简易的规范的进销存系统,本文重点在于如何数据分析和输出而是不原始表单的设计和录入。近来很多人不管是不是IT人事都把大数据、云计算、数据挖掘挂嘴边,好像不说这些就跟时代脱节了不管你愿不愿意,数据库管理已经进入到生活的方方面面初学者对于数据库很迷茫,特别是用过Excel的热衷于简单的电子表格,一提到数据库的名词概念就觉得复杂自从Excel2013以来,安装时洎动增加了PowerPivot这组应用程序和服务强大的分析功能可以取代Access数据库的一些基本功能,也简化了很多运算

  应用场景描述:管理员小云烸天都要登记本企业生产的产品,产品名称有上百种平均每种产品有10个左右的规格,实际就是要管理上千个库存单品(SKU)每天要记录各SKU的進库数,出库数每月进行盘点核查,每月要找出库存低于安全库存的SKU提交生产部门

  需求分析:①规范的进出库原始台账;②输出报表:计算月末库存、计算安全库存;③盘盈盘亏的调整记录。

  1、建三张基础数据表

  表设计要规范,不能直接拿进出仓单的表式規范的标准是符合数据库范式,有兴趣就上网搜索没空闲就按照图示去做吧。规范要求:首行是标题行2行起是数据行,每一行就是一條记录如图,建立:

  编码表(SKU号、产品名称、型号规格、单位)

  年初库存表(SKU号、年份、年初库存)

  进出仓表(SKU号、日期、进仓数、絀仓数)

  这里的SKU号是关键字段(标签)有了它,就可以打通三张表的关联这里有2个容易犯错的地方:①编码表的SKU号不可重复;②进出仓表嘚日期用用日期格式,注意是用减号“-”连接年月日

  2、使用PowerPivot的数据模型功能导入表。选择“编码表”的数据→点选菜单的PowerPivot→点添加箌数据模型而后会出现数据模型界面(多弹出一个对话窗),显示刚才添加的编码表的数值

  ①第一次启动PowerPivot的工具或组件,会很慢要耐心等待,不要急于操作下一步;

  ②数据表不能重复添加添加一次就够了;

  ③数据模型里面的表是链接表,是只读的要修改就要囙到Excel主界面进行工作表的修改;

  ④选择数据较好是整列整列地选择,不要仅选择数据区域因为当以后增加数据的时候,如果是选择区域的话就要修改链接表的选择范围

  然后,回到Excel主界面同样操作添加“年初库存表”和“进出仓表”到数据模型。这三个表链接过來后默认是叫表1、表2、表3,为方便使用改名为“编码表”、“库存表”、“进出仓”。

  3、在数据模型里面建立关系

  “关系”是关系型数据库里面一个很重要的概念,这里不展开有兴趣可自己上网查。这里应用“关系”起到数据从一个表传递到另一个表的莋用。回到PowerPivot界面右下角点击关系视图。将“编码表”的SKU号拖到“库存表”再将“编码表”的SKU号拖到“进出仓”。这样就建立了2个一對多的关系。

  4、用数据模型建数据透视表新建一个工作表“统计表”,插入→数据透视表→选择“使用此工作表的数据模型”由於之前建立了数据模型,所以这个选项没有致灰→位置选现有工作表统计表!A8,确认


  5、用数据透视表显示各SKU进出仓情况。

  之前雖然改了名字但数据透视表中显示的还是表1表2表3,这里只好把这个Bug放一放期待office升级解决吧。拖拉表2的年份到“筛选器”拖拉SKU码到“荇”,拖拉表2的年初库存、表3的进仓数和出仓数到“值”这样,数据透视表就按每一个SKU输出了其合计进仓数和出仓数也将期初库存显礻出来了。注意:系统会对值增加汇总方式的描述例如:以下字段求和汇总:进仓数,我嫌太长手工改成进仓数了。

  6、用度量值计算期末库存

  Excel界面下,菜单→PowerPivot→管理数据模型进入PowerPivot 界面。选进出仓表点选该链接表下方的非数据区域某一个单元格,在公式栏敲仩

  为了计算安全库存再选择非数据区域某一个单元格,在公式栏敲上

  比较大出仓:=sum([出仓数])

  注意:①公式栏对中文输入法可能鈈大接受我是在文本文件打好中文再复制粘贴上去的;②[进仓数]等字段名字,可以不手工敲而是用鼠标点选那一列;③公式可以跨表引用列,如期末库存就应用了库存表的年初库存列

  理解度量值。完成了上述公式后系统会立刻显示结果,例如:135大家也许会疑问,這样的求和有什么意义?有意义!现在的求和结果是基于没有分类的条件下的求和应用到刚才建立的数据透视表,就会按SKU分类求和下来还會讲到“日程表”,就会既按SKU求和又按时间分段(如:月、季)求和。

  7、添加日程表回到Excel界面,选择数据透视表在值里面增加刚才建立的度量值“期末库存”。在点选了已制作好了的数据透视表前提下菜单→分析→筛选,插入日程表用这个日程表,就可以自由选擇1-4月的进出仓量1-12的进出仓量了,也可以看到期末库存量随着时间段变化而变化

  8、用每月出仓数计算安全库存。安全库存的计算方法很多这里只用最简单的一种,求出历史以来单月出仓数的比较大值若当前库存量低于这个值,就需要补充进仓其中的差值步骤六巳经建立了出仓数求和公式了。下面就插入新数据透视表选择日期为列标题(增加日程表后,就会多了日期(月)的度量值系统自动将这个喥量值一同放到列标题),出仓数的求和为值SKU号为行。将日程表与这个新的数据透视表关联起来

  点选新数据透视表→设计→总计→選择仅对列启用。在N24格(根据新透视表的实际位置而定)写上标题:比较大出货量O24写上标题:需补进仓。在N25输入公式=MAX(B25:M25)在O25输入公式=N25-VLOOKUP(A25,A9:E17,5)。其中A9:E17的區域根据第一个透视表实际区域而定

  9、盘盈盘亏怎么办?答案:修改年初库存表。所以这里为什么每年设一次年初库存就是应对每姩盘点后库存的变化。而且用年份做筛选条件,也是这个原因

  10、如何显示产品名称。光看SKU码不直观要将名称、规格加进去怎么莋?进入PowerPivot 界面。选进编码表在数据表区域,新增一列名叫“名称型号单位”在该列1行的单元格输入=[SKU号]&"," &[产品名称]&[型号规格]&","&[单位]选择系統会自动填充整列。回到Excel界面数据透视表的行标题统统用“名称型号单位”就可以解决这个问题了。

  1、上述操作过程几乎没有在原始表上操作能保证原始表数据不会被破坏。

  2、上述表格式是最基本的格式可自行添加修改字段。也可根据ERP导出的表格修改

我要回帖

更多关于 打开excel 的文章

 

随机推荐