我知道标题不是最具描述性的,但我想不出更好的描述方式。
最终我想做的是:
我正在建立一个系统来处理来自几家不同公司的CSV数据导入。当然,每家公司的格式略有不同,每列/标题中的数据量不同,排列也不同。
我可以:
将文件格式硬编码到程序中,编程快速简单,但不抽象或未来证明
或通过允许用户在系统中配置“文件格式”,通过拖放CSV标题并为每种传入文件格式保存预设来提供“动态性”。
我想做选项2,但我该如何做呢?
我猜测标记样式系统会这样做......但是任何建议都会受到赞赏。
我正在使用PHP,MySQL和CodeIgniter 2.0.2,如果这有帮助,并且还可以访问我的应用程序中的所有Zend库。
答案 0 :(得分:1)
假设用户将提交您预先定义的可能数据类型的子集,这不应该太难。
允许用户选择数据类型并在其csv中为您提供字段名称的简单表单可用于创建您提到的模板。将这些存储在与用户关联的数据库表中,并在导入csv之前让它们选择模板。对于拥有没有标题行的csv的客户,在他们告诉您每种数据类型的列号时会略有不同。
我还建议为尚未定义其出口的客户提供预定义格式。这样他们就可以按照你的一种格式建立出口。
您还可以让用户定义其默认模板。这样,如果他们总是以相同的格式导入数据,他们就不必在每次导入数据时都选择模板。