【发布时间】:2016-05-10 21:25:21
【问题描述】:
我不会在这里称自己为程序员来侮辱真正的程序员;我充其量是个业余爱好者。现在解决手头的问题:
我正在编写一个程序,允许紧急操作中心的用户快速登录并处理无线电流量和其他数据。该软件不会处理任何敏感信息,因此无需担心数据机密性。然而,完整性和可靠性是。将有多个实例,该程序需要从可以在程序外部编辑的某些数据源中读取,并且在进行更新时将文件简单地复制到适当的位置(我将处理该部分)。我们选择 Excel 是因为它本身就以表格形式进行布局,并且 xlsx 文件几乎可以通过软件在每个平台上轻松维护。
我想要做的是:当主窗体打开时,我希望它在Module1 中调用一个公共子(因为其他窗体可能也需要使用这个子)并打开文件Facilities.xlsx 为已读只要。有两列:A 包含设施类型(医院、EOC、现场指挥部),B 包含设施名称(格林维尔纪念馆、斯巴达堡县 EOC),依此类推。随着设施的添加和删除,行数会发生变化,不过我会处理更新分发。另一个 Excel 文件 Personnel.xlsx 将有更多的列和未知的行数。
我需要做的是 A) 确定要填充的数组的大小,包括所需的维数,因为这将随着列数和行数而变化,并且 B) 将数据读入数组以进一步通过决策结构进行处理或最终写入另一个 excel 文件以用于其他目的。出于所有意图和目的,数组应该是 As String,因为我将处理的所有值都是字符串。
我找到了几十个示例,其中许多使用固定范围 (A1:B38) 和类似的,还有其他使用 ADO 甚至以某种方式将 SQL 带入这种组合的示例,以及其他不完整的示例,我无法甚至确定它们如何适应其他示例。这段代码需要小、简单、轻量级,只需要将文件中的数据读入数组即可。所有的数据都是字符串,所以没有花哨的计算或其他问题。
截至目前,我确实有 Microsoft Excel 12.0 对象库和 Microsoft Office 12.0 对象库(我猜 Office 与 Excel 一起标记)COM 引用,并且在 Module1 中我有:
Imports Excel = Microsoft.Office.Interop.Excel
帮助简化对命名空间的引用。
迄今为止,我已经尝试了十几个不同的示例,并且出现了一些运行时崩溃、读取任何数据失败以及一些产生不允许构建的错误的问题。我很茫然,即将放弃 Excel 到其他不太可靠的来源。我真的需要一些帮助。如果有代码轻量级、资源节省的解决方案,请帮助我。
【问题讨论】: