【问题标题】:Read csv file client side读取csv文件客户端
【发布时间】:2011-04-15 18:25:54
【问题描述】:

我必须阅读 csv 文件客户端的前几行,以便在上传大文件之前向用户提供预览。

我正在使用 c# 和 ASP.Net (VS2010)

有谁知道如何做到这一点?而且它适用于所有浏览器!?!

(不能使用activeX左右,我们不希望我们的客户安装一些东西!)

一个示例代码会很棒!

提前致谢!

【问题讨论】:

    标签: c# javascript asp.net visual-studio-2010 html


    【解决方案1】:

    Firefox 3.6+ 和 Chrome(至少是版本 6,可能是旧版本)支持 File API,它允许您从文件输入读取本地文件。

    这是一个简单的示例:

    function handleFile(file) {
        var reader = new FileReader();
        reader.onload = function(e) {
            // Here's where you would parse the first few lines of the CSV file
            console.log(e.target.result);
        };
        reader.readAsText(file);
    }
    

    在你的 html 中,你会有这样的东西:

    <input type="file" onchange="handleFile(this.files[0])" />
    

    当然,在现实生活中你应该让它优雅地降级。

    file 对象具有 nametype 属性,如果您想要更严格,可以使用它们来验证它是否是 CSV 文件。

    【讨论】:

    • 谢谢...这是我正在寻找的答案:D
    • 另一个问题,是否也可以在不加载完整 csv 的情况下加载 csv 的前 5 行?如果是这样,你能给我举个例子吗?谢谢
    • @Cyber​​K:我认为没有办法只读取文件的一部分。您必须通读全文,找到第 5 行的结束位置,然后使用 substring 才刚刚开始。
    • 好的,我正在解决这个问题。如果我找到解决方案,我会在这里发布...再次感谢!
    【解决方案2】:

    在 HTML5 中有一个 W3C proposal for a File API。我针对this test 运行了几个浏览器,发现Firefox 3.6 和Chrome 6 支持File Reader APILocal Storage。 Safari 5(在 Windows 上)支持 Local Storage File Reader API。抱歉,我无法测试 IE9,因为公司政策已经制定了 IE6(?!)。

    【讨论】:

      【解决方案3】:

      您无法使用原生 JavaScript 读取本地文件。

      您可以使用 activeX 作为对使用 IE 的渐进式增强(尽管向 IE 用户提供增强的体验与我所支持的一切背道而驰!)。

      如果您可以使用 Flash,请查看Read local file in Flash

      【讨论】:

        猜你喜欢
        • 2014-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-24
        • 2021-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多