- 博客(12)
- 收藏
- 关注
转载 ASP.NET中应用Excel:(13)优化(续)
前面章节描述的使用Automation操作Excel的方法,采用每次new Excel.Application()的方式。这样每访问Excel一次,就要启动一个Excel实例,会耗费很多时间在Excel的启动上(我的环境下大致是用15秒来启动Excel)。这个可以通过将Excel.Application类型变量申明为static来进行优化。通过这种方式,除第一次需要启动Excel外,后续操作都不再
2014-09-13 22:48:18 350
转载 ASP.NET中应用Excel:12)其它读取Excel数据的方法(完)
除了直接访问单元格读取数据的方法之外,也可以使用OleDBAdapter来读取Excel工作表数据,注意,是工作表数据。使用这种方法,可以一次性获取全部工作表数据集。 使用Excel 2003的方法,注意连接字符串中的单引号: [csharp] view plaincopy using System.Data; using Syste
2014-09-13 22:45:47 464
转载 ASP.NET中应用Excel:(11)权限问题-为什么Excel无法启动
默认情况下,ASP.NET以“NET SERVICE”来启动Excel,如果没有正确的设置权限或使用模仿(Imperson),则会出现无法启动Excel的错误。 先看模仿(imperson)如何处理。模仿需要在web.config指定有权限启动和访问Excel的用户名和密码,密码是明文的,其格式如下: [xml] view plaincopy sy
2014-09-13 22:45:17 519
转载 ASP.NET中应用Excel:(9)实现表格的自动增长
当用户编辑Excel工作表的时候,如果在正编辑的单元格上按回车或下键头的时候,编辑焦点会自动向下滚动。当然Excel本身已经具有256X65535的空间,因此这不是什么新鲜事。如果要在我们的HTML表格上实现这样的功能,那就更像Excel了,而且这么简单的功能,没有理由不来个锦上添花。设想一下,当用户使用我们的表格编辑数据,来到最后一行,输入,一按回车,表格自动增加了一行,来到最后一列,再按右键头
2014-09-13 22:44:04 562
转载 在ASP.NET中应用Excel:(7)表格尺寸的计算
上一节留了个尾巴,没有说如何获取表格的尺寸。其实表格尺寸的计算在读取Excel工作表数据时就应该进行,同时进行的还有计算包含数据的单元格的最大列号和行号。 具体实现是: [csharp] view plaincopy for (int r = rowRange.Count; r >= 1; r--) { XmlE
2014-09-13 22:41:47 378
转载 ASP.NET中应用Excel:(6)在服务器端生成HTML表格
读写数据都完成了,现在来看看如何生成客户端界面。使用Atals的TabContainer是个不错的选择。比较的是如何保持单元格原有的格式,特别是在有单元格合并的情况下。 首先,你得有一个TabContainer控件在页面中,然后需要根据工作表的数量添加相应的TabPanel。可以以如下方式添加: [csharp] view plaincopy Xm
2014-09-13 22:41:22 479
转载 ASP.NET中应用Excel:(5)保存
读取数据之后,可以生成HTML的页面,由用户在客户端浏览器进行在线编辑(生成表格和添加在线编辑功能将在后续章节中描述,如果这个主题让大家感兴趣的话),类似于Google的在线电子表格功能。当然啦,我们只要很阳春的功能就可以了。编辑的结果,可以以XML的形式提交给服务器端处理,这个处理主要是保存为XLSX电子表格。因为使用的是ASP.NET环境,配合Atlas会比较方便,使用ScriptMethod
2014-09-13 22:40:48 396
转载 在ASP.NET中应用Excel:(8)为HTML表格增加编辑功能
我们可以为HTML表格增加编辑功能,具体表现为:当用户单击某个单元格(术语:激活),该单元格位置上出现编辑框,背景也与其它未激活的单元格不同,以示区别,当用户完成编辑后,单元格内容被更新。如果用户使用方向键,则变化单元格的激活状态。整个情况类似于Excel中的操作。 要实现上述目的,我们首先要处理单元格的在激活事件(onactivate)和去激活事件(ondeactivate),具体实现如下
2014-09-13 22:40:24 519
转载 ASP.NET中应用Excel:(4)格式和公式
现在已经有了单元格对象,我们来读取单元格数据: [csharp] view plaincopy Excel.Range cell = (Excel.Range)range.get_Item(r, c); // 获取单元格对象 if ( (bool)cell.HasFormula ) // 该单元格式为公式 {
2014-09-13 22:40:23 503
转载 ASP.NET中应用Excel:(3)访问工作表数据
已经创建了Excel.Application对象,并打开了工作薄,现在可以遍历工作表和单元格来获取数据了。并不是所有的单元格都有数据,大部分都是空的,因此XmlDocument来保存取得的数据是个不错的主意,还可以将XmlDocuemnt作为ScriptMethod的结果返回到客户端浏览器,使用JavaScript来生成表格,表现结果。根据我的经验,即使在服务端创建表格,也只消耗Excel操作的数
2014-09-13 22:40:01 313
转载 ASP.NET中应用Excel:(2)释放对象
我们访问的Excel对象是COM对象。对于COM对象(也包括接口),每次对于对象的引用(在C++中这一操作对应于ComCreateObject和QueryInterface)都会增加该对象的引用计数,释放对象引用则会减少引用计数(在C++中对应于Release)。在C++中对象和接口的创建和引用是显式的(需要编写代码),因此我们很清楚的知道哪些对象和接口应该在使用完成后释放掉,释放操作也是显式的。
2014-09-13 22:39:33 494
转载 ASP.NET中应用Excel:(1)访问Excel
虽然MS不建议在网站中使用Automation来访问Excel对象,但在只有很少访问量的Intranet中应用一下也是可以的。 要使用Excel Automation,首先要添加Microsoft.Office.Interop.Excel的引用。通过项目的“Add Reference”窗口, 找到"Microsoft Excel 12.0 Object"(这里是Excel 2007,如果是E
2014-09-13 22:38:56 318
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人