更高级的表格/电子表格 SWT 实现

Posted

技术标签:

【中文标题】更高级的表格/电子表格 SWT 实现【英文标题】:A more advanced table/spreadsheet SWT implementation 【发布时间】:2010-09-12 01:26:54 【问题描述】:

我正在开发一个基于 Eclipse 富客户端平台的应用程序,该平台严重依赖于使用表格来显示和编辑数据。我目前正在使用 Table 和 TableViewer 的 SWT 实现。

我的用户总是抱怨它“不像在 excel 中那样工作”。最值得注意的是,我无法选择一行中的单个单元格,并且所有行都具有相同的高度。我正在寻找解决这些问题的实现。

标准:

免费(如演讲中的啤酒 -- 我是一名博士生,课程是 EPL) SWT(在 SWT 中包含 swing 的各种解决方案都不是很好)

编辑:

到目前为止,我有以下建议:

Ktable Nebula Grid Widget NatTable Agile Grid Jaret Table

不幸的是,粗略一瞥并没有提供有关这些实现之间差异的信息。我当然会在这里寻找解决方案并报告,但是您对此有什么建议吗?

【问题讨论】:

【参考方案1】:

查看Nebula Grid 组件。它仍在开发中,因此不是 100% 成熟,但似乎可以满足您的需求。

【讨论】:

【参考方案2】:

另外三个

NatTable

Agile Grid

Jaret Table

【讨论】:

【参考方案3】:

我认为SWT Matrix 具有您正在寻找的功能。

它采用对称设计,因此行和列具有相同的表示形式,这意味着它们都可以像在 excel 中一样被选择、移动、隐藏、调整大小等。单元格导航和选择也类似于 Excel。而且所有的键和鼠标手势都绑定到与spreadshit中相同的动作。

该组件是封闭源代码,但可免费用于私人和非商业用途。不过,目前仍处于 Alpha 阶段。

【讨论】:

【参考方案4】:

KTable 成熟且可定制。我用它来为我的 SWT 应用程序提供非常类似于 Excel 的体验。

【讨论】:

据我所知,KTable 已经好几年没维护了【参考方案5】:

NatTable 倾向于提供高性能和大容量容量

【讨论】:

【参考方案6】:

如前所述,我一直在工作项目中使用Nebula Grid 组件,总的来说,我不得不说我认为它工作得很好。存在一些性能问题,它还没有完全完成,但它很容易弯曲成你需要的任何形状,并且在电子表格样式的数据表方面做得很好。您可以拥有列和行标题、列组、自定义单元格渲染器等。

我最近遇到的问题是如何正确计算线高,而且目前似乎没有太多积极的开发,所以我会自己尝试修复它。

【讨论】:

【参考方案7】:

NatTable 是免费、快速和强大的。

自从第一次提出这个问题以来,它已经成为 Eclipse Nebula 项目的一部分。发展依然活跃。

API 非常庞大。大量示例提供了简单的示例代码供您入门。

一些不错的功能:

可以处理大型数据集而不会出现性能问题 行标题 跨越单元格 树形表 单元格编辑器:文本、组合、复选框 复制、导出到 Excel 和打印的标准操作。 无效值的验证和视觉指示 多单元格编辑 单元格装饰器 保持列大小、顺序、隐藏、排序等状态。

运行示例以查看速度和功率。请注意,您必须将 SWT 插件添加到您的类路径中。示例不包括它。这是一个例子:

C:> java -cp C:\eclipse\plugins\org.eclipse.swt.win32.win32.x86_VERSION.jar;NatTableExamples-0.9.0.jar org.eclipse.nebula .widgets.nattable.examples.NatTableExamples

[感谢前几年的海报提到 NatTable。此答案提供了更新和更多信息。]

【讨论】:

【参考方案8】:

KTable 类似于 JTable。

Nebula Grid 非常适合 Widget + Viewer 范例。我能够在几分钟内从普通 SWT 表迁移到此表。

【讨论】:

以上是关于更高级的表格/电子表格 SWT 实现的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 API 格式化 Google 表格电子表格单元格?

什么是电子表格

利用c语言怎么实现excel电子表格里面数据的提取

编写大型 Excel 电子表格

如何实现excel电子表格审计追踪功能

谷歌电子表格和谷歌应用引擎如何实现交互