【问题标题】:objective-c loading data from excelObjective-c 从 excel 加载数据
【发布时间】:2012-04-02 10:11:16
【问题描述】:

我正在为 iPad 编写一个应用程序,它会告诉我们是否有人在网球比赛的场上。基本上,只是一个带有名称列表的应用程序,每个名称旁边都有一个开/关按钮。一旦按下 on 按钮,他们的名字就会变成红色,因此他们在场上。

有什么方法可以让我自己更轻松地完成此操作,我可以将它连接到我的计算机并在应用程序完成后加载名称列表吗?这将使我不必手动单独输入/修改名称。

提前致谢, 路易斯。

【问题讨论】:

  • 您可以将您的 excel 表格导出为 csv 文件,然后将该文件导入您的应用中。

标签: objective-c xcode cocoa


【解决方案1】:

虽然您的问题很...含糊不清,但有一个建议:

通过导入电子表格的.csv 版本(逗号分隔值),可以轻松导入类似电子表格的数据。

逗号分隔值 (CSV) 文件存储表格数据(数字和 文本)以纯文本形式。纯文本表示文件是一个序列 字符,没有必须解释的数据,如 二进制数。 CSV 文件由任意数量的记录组成, 由某种换行符分隔;每条记录由字段组成, 由其他字符或字符串分隔,最常见的是文字 制表符或逗号。通常,所有记录都有相同的序列 字段。

示例:

Year,Make,Model,Length
1997,Ford,E350,2.34
2000,Mercury,Cougar,2.38

那么,你可以简单地:

(1) 将您的 csv 文件加载为简单的文本文件

NSString* contents = [NSString stringWithContentsOfFile:filename
                                               encoding:NSUTF8StringEncoding 
                                                  error:nil];

(2)获取行数

NSArray* lines = [contents componentsSeparatedByString:@"\n"];

(3)解析每一行的字段

for (NSString* line in lines)
{
    NSArray* fields = [line componentsSeparatedByString:@","];
}

【讨论】:

  • 谢谢,这会有所帮助。为什么我的问题含糊不清?我会根据您对此的回复尝试澄清。
  • @loucidity 好吧,在第一次阅读时,我实际上并不确定您是否想知道如何编写 iPad 应用程序,如果您在加载数据时遇到问题(通过 Web 请求?),或者如果您只是想知道导入电子表格数据的最佳方式...
  • 只是导入电子表格数据的最佳方式,您回答得很好。再次感谢。
  • @loucidity 不客气。 :-) 为了让社区更容易理解哪个答案真正有帮助,您可以将答案标记为“答案”...
  • 如果我敢指出——用逗号分割会导致任何带有逗号的标签被不恰当地分割。我想像“Ed Begley, Jr”这样的东西是唯一的潜在问题,所以我不知道这是否是一个真正的问题。
【解决方案2】:

这总体上是一个 CSV 问题,并非特定于此代码。事实上,如果 CSV 字段包含逗号,这将被破坏。如果您的数字标准使用逗号而不是点来表示浮点数,则会发生很多情况。

我倾向于总是使用字段分隔符为 TAB(又名“\t”)而不是逗号的 CSV。更不可能被打破。这通常可以在 Excel 等 CSV 生成工具中进行配置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多