我必须用 ASP classic 编写一个报告系统。 编写线框图的人对性能/速度/SQL 如何工作等等没有概念,所以我从数据库中获取数据就很有趣。
但是,他们希望用户可以按下按钮将报告“下载”到 CSV 文件。
我可以提交表单并重新运行 SQL(由于一页上显示的报告数量及其格式,这需要很长时间) - 然后将其作为文件发送到浏览器。
或者我正在考虑使用 JS 或 jQuery 等来获取所需的目录,以某种方式将其转换为 JSON 对象,使用 AJAX 将其发布到另一个页面,然后在另一个页面中获取 JSON 并将其解码为CSV 格式,然后可以作为文件传递给用户。
我只是认为这种 JS 方法会更快,而且如果我可以使其通用,那么它可以采用任何带有类的表,例如“报告”,并将其转换为用于创建 CSV 的 JSON 对象我可以轻松地在他们让我编写的数百份报告中重复使用此代码。
是否有人有 JavsaScript 代码或 jQuery 可以获取任何格式的表格(它有一个带有列标题的标题,一个带有主要内容的 tbody)并将其编码为 JSON 或 JS 对象以发布到另一个页面然后我可以在哪里对其进行解码并将其作为 CSV 文件输出?
这是他们的一份报告的屏幕截图,
最佳答案
该问题的一个可能解决方案是,当请求显示给定报告的页面时,已经为每个报告生成 CSV 格式的数据版本。 (每个报告仅查询数据库一次。)以预期格式将数据发送回响应中,以将其显示在表中,并将 CSV 文件保存到服务器上的临时位置。
这样,您可以在“下载 CSV”表附近放置一个链接,该链接将指向已存在的文件。它将避免为一份报告两次查询相同的数据,或者必须将相同的数据发送到服务器和客户端之间的往返。
关于javascript - 将 HTML 表转换为 JSON 以传递给 AJAX 调用以下载为 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34158618/