【问题标题】:Reading some rows in Excel在 Excel 中读取一些行
【发布时间】:2016-01-28 10:14:17
【问题描述】:

我在尝试读取 Excel 文档的特定行时遇到了一些问题。

我的实现在这里:Reading Excel in c# where some columns are empty。 怎么看,整个Excel都被拿进了一个DataTable里。

现在我想得到一个特定范围的 n 值:

我认为是 DataTable 的问题...我认为也许我应该获取另一个 DataTable...也许使用另一个不同的查询?

【问题讨论】:

    标签: c# excel datatable


    【解决方案1】:

    您似乎使用的是固定模板,因此您可以使用不同范围内的不同查询来解决。

    要选择特定范围,您可以使用以下查询:

    string query = "SELECT * FROM [YourSheet$B58:D70]";
    

    如果您知道范围的开始位置但不知道行数,则可以使用以下语法:

    string query = "SELECT * FROM [YourSheet$B58:D]";
    

    在您的连接字符串中使用HDR=NO 并更改起始行,您可以使用此查询来简化您的后续操作:

    SELECT [F1] AS Compagnia,
        [F2] AS Agenzia,
        [F3] AS DataSinistro
    FROM [YourSheet$B59:D]
    

    请记住,您还可以使用 WHERE 过滤结果或排除空行;即:

    SELECT [F1] AS Compagnia,
        [F2] AS Agenzia,
        [F3] AS DataSinistro
    FROM [YourSheet$B59:D]
    WHERE [F3] IS NOT NULL
    

    【讨论】:

    • We are close...在我的模板中,列彼此相距很远,所以这是我的查询:"SELECT [compagnia], [agenzia-esercizio-numero], [data sinistro] FROM [" + sheet + "$B58:DY1000]" ... 1000 是限制(没有这个,继续阅读无限的...)。可悲的是,GridView 会加载所有行,即使是空的也是如此。
    猜你喜欢
    • 2016-10-07
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 2012-10-09
    相关资源
    最近更新 更多