我有一个非常具体的问题,我正在寻找一种很好的方法来解决它。
基本上,我一直在为零售亭开发一个远程监控系统。我在一个完全依赖Ajax的框架内操作。我一直在使用XML在我使用的客户端/服务器端脚本之间传递数据。
在客户端,向用户显示了一个datepicker(jquery),我的脚本将提取任何相关的数据。
现在,我承担了获取这些表(通过Ajax填充)并将它们导出到Excel的任务。我希望此功能尽可能灵活。这是一个非常年轻的项目,需求将从一个客户变为另一个客户。
灵活性
简单和快速的开发是我最关心的问题。数据将从一个具有简单数据结构的表变化到非常不统一的数据存储方式。例如:多个表格、图像、图表。
编辑:
我的情况的一个关键是,我不接受任何第三方扩展
广泛地
利用,专业,并将继续开发一段时间。例:jQuery。
很简单…正确的?
我做了一点研究,偶然发现
this
PEAR插件使通过PHP导出到Excel变得容易。很好,我编写了一个脚本,它接受一个数组并将其写入电子表格。
现在,如何将数据传递给这个函数?
我已经决定从客户那里做这件事是必要的。我计划在电子表格中包含硬编码的表头。
我最近发现通过Ajax将数据发送到我的Excel导出类并不是很实际,因为实际上无法发送文件(通过头文件完成)。
我有一个范围问题。
如何在我的Ajax驱动框架之外从clientside->serverside传递数据。
我有几种方法在寻找从何处实际检索数据。
1)从表的HTML中读取数据,将其格式化为JSON,通过表单提交传递到my excelwriter.php文件。这有效率和清晰度的优势。
但是
它将excelwriter.php限制为仅打印
明确地
编码处理。考虑到未来数据的格式可能不同,此函数将非常复杂。我需要能够从多个表中提取数据(如何提取数据?),图像,以Flash呈现的图形(可能不可能…)。
每次添加新类型的数据或显示时,我都会考虑重写此函数。
2)将数据格式化为HTML时将其拉入。实际上,我正在解析这个响应对象,并将其格式化为字符串,然后将其呈现为HTML。我可以获取相关的数据、图像、图形元素,并将它们推送到JSON生成函数中。
这样做的好处是,我可以精确控制何时何地提取数据。执行、修改和获取此脚本的完成版本非常简单。
缺点是显而易见的。可读性被牺牲了,它不是面向对象的…不是所有的创意(我喜欢创意=P)
片段:
$.each(results.sale, function(i)
{
if(difference >=2)
{
this.time = String(this.time);
this.time = this.time.substr(5,2)+'/'+this.time.substr(8)+'/'+this.time.substr(0,4);
//this.time would be packaged in a json object, along with other data i'd like to export to excel
}
htmlStr += "
";htmlStr += '
'+ this.time +'';htmlStr += '
$'+this.amount+'';htmlStr += "
";total += parseInt(this.amount);
});
htmlStr += ' ';
htmlStr += '
';htmlStr += '
';htmlStr += '
';htmlStr += '
$'+total+'';htmlStr += '
';htmlStr += '
';htmlStr += ' ';
htmlStr += '