65.9K
CodeProject 正在变化。 阅读更多。
Home

跨平台交付电子表格功能

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2006年6月5日

12分钟阅读

viewsIcon

41257

电子表格组件能够帮助企业在业务增长时,快速地从电子表格管理模式升级到高级应用。只需少量代码,您就可以导入现有的Excel电子表格,自定义组件外观,并使用FarPoint Spread将其部署到Windows桌面和Web平台上。

执行摘要

许多企业需要管理各种数据,从财务到库存,从人事到零件订购,并依赖定制应用程序来提供用户界面和操作算法。对许多企业来说,仅仅使用办公应用程序中的电子表格就是他们所能掌握的极限。但随着业务的增长,这些企业必须转向更高级的应用程序,而电子表格组件提供了一种快速且经过验证的方法来实现这一飞跃。

我们创建了一家虚构的公司,Calaway-Williamson酒庄,来阐述这些公司面临的需求以及它们在电子表格组件中找到的解决方案。只需极少的.NET代码,您就可以导入现有的Excel电子表格,自定义组件的外观以创建企业用户界面,并快速开发可部署到Windows桌面(用于后台工作)和Web(用于移动销售团队)的应用程序。FarPoint建议尝试Windows Forms和ASP.NET应用程序中的Spread组件,以实现跨平台的快速电子表格应用程序开发。

下载次数

下方项目的完整示例代码可在评估版样本文件夹中找到

引言

Calaway-Williamson酒庄刚开业时,是一家充满希望的小酒庄。他们使用Microsoft® Excel®电子表格来记录关于葡萄酒的数据,并对信息非常讲究。随着客户和员工数量的增加,业务需要更好的报告和更多的数据管理,以及不断增长的数据量。他们找到的解决方案是将现有的Excel电子表格导入FarPoint的电子表格组件,将简单的电子表格转换为功能齐全的电子表格应用程序,并免费部署到多个联网机器上。一旦业务部门转向这种更复杂的解决方案,销售人员就想知道是否可以将相同的功能提供给他们的Web平台,以便他们在实地按需访问数据。由于FarPoint Spread有Web Forms版本,他们能够快速升级到此功能。Calaway-Williamson可以通过使用电子表格组件来快速轻松地开发他们管理业务所需的应用程序,从而应对增长。虽然这家公司是虚构的,但故事中代表的需求和解决方案来自实际客户,他们通过FarPoint Spread找到了解决方案。正是因为FarPoint能够以免费的电子表格组件在跨平台上提供这些功能,FarPoint才成为企业电子表格解决方案的领导者。

将Excel表格转换为电子表格应用程序

由于有大量企业数据存储在易于使用的Excel电子表格中,因此在迁移到电子表格应用程序时,您不必丢失任何数据。只需使用FarPoint Spread打开Excel(.XLS)文件,所有数据都将可用,包括公式、自定义名称和打印设置。从Excel转换为Spread就像一行代码一样简单

fpSpread1.OpenExcel(fileName);

在Spread中打开Excel文件有多种方法,还可以指定其他参数来确定文件的确切处理方式。您可以包含导入期间的警告列表,可以指定工作表名称或编号,可以从文件名或流导入。无论您选择哪种方法,它都是一个简单的过程。导入Excel文件的另一个好处是,除了能够挽救遗留电子表格外,还可以先在Excel中进行原型设计,然后将完成的原型导入Spread。

快速开发电子表格应用程序

了解基础知识

要了解使用电子表格组件开发应用程序有多么容易,最快的方法就是尝试Spread产品的试用版。通过下载的Spread for Windows Forms安装程序,在VB示例文件夹中,打开fpwine-orderentry演示,看看Calaway-Williamson创建了什么。打开并运行订单录入程序。当您点击“Enter Order”时,会出现一个搜索表单。要录入订单,请点击“Find Customer”;会出现一个额外的列表,显示客户。这是一个很好的示例,展示了一些电子表格的功能。下图显示了订单录入程序的界面

代码可以在Microsoft Visual Studio .NET中轻松编辑和构建。无论您是使用C#还是Visual Basic .NET,使用Spread开发应用程序都可能像从工具箱中选择Spread,将其放置在窗体上,并编写几行代码进行自定义一样简单。在此演示中,有一个父窗体,其中包含左侧的按钮菜单和葡萄图形。订单录入窗体包含父窗体内的两个电子表格和两个按钮。这说明了电子表格组件可用于数据录入和数据库连接。

展示代码

通过用户界面各部分背后的这种电子表格功能,您可以验证用户输入,允许电子表格计算,使应用程序根据事件响应用户输入,在单元格中提供日历和时钟控件,并提供可打印的报告。

选择一个客户,订单录入屏幕就会出现。在订单表单中,您可以填写发票;选择一个项目,则“Item Total”列会自动填充;输入销售税,系统会自动计算;更改送货方式,则“Freight”项也会相应更改。这些都是由底层电子表格功能实现的特性——强大的计算引擎。添加另一个项目,数量大于一,并添加2%的折扣,数值会自动重新调整。

以下是汇总行总计所需的所有代码——

'Sums up a row = (qty * unitprice) * discount
fpSpread1.Sheets(0).Columns(5).Formula = "(A1*E1) * (1-D1)"

下图显示了结果

这里是一个示例代码,它处理用户从“Item ID”组合框列表中选择一个项目,并自动填充产品描述字段和单价,然后将其计入项目总价的计算中

Private Sub ssProducts_ComboSelChange(ByVal sender As Object, _
            ByVal e As FarPoint.Win.Spread.EditorNotifyEventArgs) _
            Handles ssProducts.ComboSelChange
      'Selected an ItemID. Find and add the Description and Price
      Dim seltext As Object
      'Get the selected ItemID
      seltext = CType(ssProducts.EditingControl, _
                FarPoint.Win.FpCombo).SelectedItem
 
      If seltext <> Nothing Then
         Dim dr As DataRow
         'Find the row in the table
         dr = prodtable.Rows.Find(seltext)
  
         With ssProducts.Sheets(0)
            'Add the Description
            .SetValue(e.Row, 2, dr.Item("Product"))
            'Save the ItemID in the cell tag for future reference
            .SetTag(e.Row, 2, seltext)
            'Add the Price
            .SetValue(e.Row, 4, dr.Item("Price"))
         End With
 
     End If

End Sub

发现大量功能

作为Spread功能的另一个示例,点击“AgedReceivables”。此表单显示了一个电子表格,其中展示了Spread的许多可自定义功能。

单个Spread组件可以处理多达20亿张工作表,每张工作表最多包含20亿行和列。跨工作表引用允许计算利用不同工作表上的数据和公式。Spread拥有300多种内置函数,并能创建自定义函数,提供您所需的所有电子表格计算能力。借助公式编辑器,您可以像在任何电子表格中一样轻松地创建任何计算的公式。正如示例所示,总计的计算是自动执行的,就像上面订单录入表单中的折扣计算一样。

Spread的这种用法表明,您可以设置多个页眉并跨越多个页眉。您可以跨列或跨行合并单元格,甚至自动合并内容相同的单元格。您可以添加单元格注释(鼠标悬停在红色圆点上时会显示存在单元格注释)。行数和列数可以预先确定。列的宽度和行的高度可以调整。所有这些都是内置功能,可以通过设置电子表格中特定对象的属性来获得。

所有这些都来自一个电子表格组件。

设置这些就像几行代码一样简单,这些代码会设置那些对象的属性

With fpSpread1.Sheets(0)
    .RowCount = 6
    .ColumnCount = 3
  
    .ColumnHeader.Visible = True
    .RowHeader.Visible = False
  
    'Set Column properties
    .Columns(0, 2).Locked = True
    .Columns(0).Width = 81
    .Columns(0).BackColor = color.Yellow
    .Columns(0).HorizontalAlignment = _
       FarPoint.Win.Spread.CellHorizontalAlignment.Right
  
    'Change default row height
    .Rows.Default.Height = 30
  
    'Add labels in row x, column 0
    .SetValue(0, 0, "Subtotal:")
    .SetValue(1, 0, "Sales Tax:")
    .SetValue(2, 0, "Freight:")
    .SetValue(3, 0, "Total:")
    .SetValue(4, 0, "Amount Paid:")
    .SetValue(5, 0, "Balance Due:")
  
    'Create Cell Spans
    ' row, column, rowCount, columnCount
    .Models.Span.Add(0, 0, 1, 2)
    .Models.Span.Add(2, 0, 1, 2)
    .Models.Span.Add(3, 0, 1, 2)
    .Models.Span.Add(4, 0, 1, 2)
     .Models.Span.Add(5, 0, 1, 2)
  
    'Create Percent cell
    Dim cellPercent As New FarPoint.Win.Spread.CellType.PercentCellType()
    cellPercent.DecimalPlaces = 1
    .Cells(1, 1).CellType = cellPercent
  
    'Create Currency cells for column 1
    Dim cellCur As New FarPoint.Win.Spread.CellType.CurrencyCellType()
    cellCur.NegativeRed = True
    cellCur.ShowSeparator = True
    'Apply to column 1
    .Columns(2).CellType() = cellCur
  
End With

触达Web

随着Windows应用程序的快速轻松开发取得成功,Calaway-Williamson的管理层接下来询问,是否可以将相同的功能提供给经常出差并与现有和潜在客户打交道的销售团队。他们了解到,可以使用Spread for Web Forms产品轻松开发Web应用程序,该应用程序可以访问相同的公司数据库,并具有相似或定制的界面。凭借与Windows版本相同的可伸缩性和性能特性,他们生成了Web应用程序所需的页面。此图显示了Windows应用程序中可用的相同功能,但可以通过Web浏览器访问

Spread的两个产品(Windows和Web Forms)都基于通用模型构建,因此开发人员可以快速获得两个平台上开发应用程序的相同外观和感觉,只需少量代码更改。

凭借内置的客户端功能,您可以使您的Web应用程序运行得更像Windows应用程序,而无需回发。通过使用AJAX回调和正确的考量,Web应用程序的性能对最终用户来说可以感觉就像Windows应用程序一样。

与Windows应用程序的代码类似,Spread for Web Forms应用程序的开发也很容易。

该项目取得了更大的成功。

使库存控制即时且移动化

基于计算机的菜单

当当地一家餐厅anai-nalu开始销售Calaway-Williamson的葡萄酒时,他们的管理层看到了Calaway-Williamson开发的界面的演示,并询问他们是否可以将类似技术用于其工作人员,他们通过该技术访问有关餐厅库存葡萄酒的信息。由于葡萄酒种类繁多,每种葡萄酒的信息量很大,餐厅希望如果可能的话,能让工作人员在便携式设备上访问信息。答案再次是肯定的,餐厅获得了一个基于Windows的葡萄酒列表应用程序。该应用程序运行在服务员使用的Tablet PCs上,用于点餐。当选择一种葡萄酒时,服务员可以使用单元格注释来显示有关该葡萄酒的更多信息,如下图所示

请注意,有许多特性:按钮、图形以及某些地方的渐变,这些甚至不像电子表格。此应用程序中的一切都使用电子表格组件完成。下图显示了开发环境内部的视图,不包括外观自定义

有了这个应用程序,他们就可以立即通知领班派人去酒窖准备葡萄酒,甚至在服务员离开客户之前。

这是处理点击葡萄酒选择并将其添加到订单中的代码

Private Sub fpWineList_ButtonClicked(ByVal sender As Object, _
        ByVal e As FarPoint.Win.Spread.EditorNotifyEventArgs) _
        Handles fpWineList.ButtonClicked
'Clicked on a checkbox. Add the ordered item

    'Add the item to the cart
    With fpCart.ActiveSheet
        'Get the last empty row to add the data to
        Dim row As Integer = .NonEmptyRowCount
        'Add ID
       .Cells(row, 0).Text = fpWineList.ActiveSheet.Cells(e.Row, 0).Text
        'Add Description
        .Cells(row, 2).Text = fpWineList.ActiveSheet.Cells(e.Row, 4).Text _
                              & " - " & fpWineList.ActiveSheet.Cells(e.Row, 6).Text
        'Add Price
        .Cells(row, 3).Text = fpWineList.ActiveSheet.Cells(e.Row, 7).Text
    End With

End Sub

完整的库存控制

然后他们发现,他们甚至可以使用这个应用程序来帮助为他们更受欢迎的葡萄酒保持库存。当选择一个订单时,Calaway-Williamson可以立即得知库存减少了多少瓶,从而使他们能够保持酒窖的充足供应。

轻松实现电子表格设计

Spread中的对象

Calaway-Williamson学到的经验之一是,Spread作为开发需要电子表格功能的非常实用的应用程序的基础是多么强大。IT部门对如何轻松处理代码和开发独特定制的应用程序印象深刻。这种成功的根源在于使用Spread中的对象,这些对象可以用少量代码轻松操作。通过将列、行甚至单元格视为对象,使用Spread的开发人员可以轻松地操作和自定义这些对象。无论是自定义单元格类型还是自定义样式(包含一组单元格外观设置),您都可以轻松自定义和扩展内置对象。

例如,要设置单元格中的文本,只需使用此行代码

FpSpread1.ActiveSheet.Cells(4, 9).Text = "hello, world"

Spread Designer

也许无需编写一行代码即可开发界面的最简单方法是使用内置的Spread Designer。Spread Designer是一个在Visual Studio中或独立运行的设计时应用程序,它允许您通过图形用户界面(GUI)来自定义Spread的外观和感觉。Designer包括电子表格的显示和属性列表,以及来自下拉菜单和对话框的选项。通过Designer,您可以在将更改应用于Spread组件之前预览电子表格。

底层模型

这些模型还允许开发人员轻松地自定义它们,以扩展简单默认电子表格组件的功能。通过创建自定义轴模型,可以对组件中的行和列的使用进行定制。轴(方向)、数据、跨度、选择和样式信息都有单独的底层模型。

查找更多信息

您可以轻松地从FarPoint网站下载免费的试用评估版,亲自体验开发具有电子表格功能的应用程序是多么容易。

关于FarPoint

无论您是为Web开发还是为独立的Windows应用程序开发,FarPoint都有适合您的Spread版本,并能在您需要的环境中免费部署。FarPoint提供企业级电子表格解决方案。

有关更多信息,请访问我们的网站,或直接联系我们的北美办事处或欧洲办事处

North America Contact
FarPoint Technologies, Inc.
808 Aviation Parkway
Suite 1300 
Morrisville, NC 27560 USA

Phone: 919-460-4551

email: fpsales@fpoint.com
Web: www.farpointspread.com

Europe Contact
FarPoint Europe Ltd.
Whiteleaf, Roundabout Lane
West Chiltington
Pulborough, West Sussex  RH20 2RL
England
 
Tele:  +44 (0) 1798 812 372
Fax:   +44 (0) 1798 813 049

email: salesEurope@fpoint.com

FarPoint Technologies, Inc.成立于1991年,是Microsoft Visual Studio .NET和Microsoft Server产品的专业组件的领先开发商和发行商。FarPoint是一家私营公司,总部位于北卡罗来纳州莫里斯维尔,毗邻研究三角公园(RTP),是组件行业中最受尊敬的供应商之一。我们屡获殊荣的工具为全球领先的公司、软件公司和独立顾问带来了效益,成为构建分布式企业级应用程序以供内部使用的经济高效的解决方案。

本文档中的信息如有更改,恕不另行通知,且不构成FarPoint Technologies, Inc.的承诺。

© 2006 FarPoint Technologies, Inc. 保留所有权利。

除非另有说明,本文档中包含的所有公司、产品、街道地址和人物名称均属于完全虚构的场景或场景的一部分,仅用于记录FarPoint Technologies, Inc.产品的用途。

FarPoint Spread, Spread for Web Forms 和 Spread for Windows Forms 是FarPoint Technologies, Inc.的商标。其他品牌和产品名称是其各自持有者的商标或注册商标。

© . All rights reserved.