讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在 Go 中使用 xlsx 库获取 Excel 表格中最后一个非空行的行号

陌伟小哥_4045

陌伟小哥_4045

发布时间:2026-01-24 10:04:02

|

338人浏览过

|

来源于php中文网

原创

如何在 Go 中使用 xlsx 库获取 Excel 表格中最后一个非空行的行号

本文介绍如何利用 go 语言的 `tealeg/xlsx` 库遍历 excel 工作表,动态识别并返回最后一个含有非空单元格的行索引(即“最后填充行”),适用于数据导入、自动化处理等场景。

在使用 Go 处理 Excel 文件时,常需定位有效数据的边界——尤其是最后一行实际有内容的行(last filled row)。tealeg/xlsx 是一个成熟稳定的纯 Go 实现 Excel(.xlsx)读写库,虽不提供内置的 GetLastRow() 方法,但可通过遍历逻辑高效实现该功能。

核心思路是:逐行扫描每个工作表(Sheet)的所有行与单元格,只要某一行中存在至少一个非空单元格,就更新当前最大行索引。注意:range sheet.Rows 返回的索引 r 是从 0 开始的(对应 Excel 中第 1 行),因此最终结果需 +1 才为用户习惯的“行号”。以下是完整、健壮的示例代码:

Digital Clawatar
Digital Clawatar

通过 UNITH API 创建、配置和管理 UNITH 数字人形象,价格低于 HeyGen 等,适用于用户想要创建…

下载
package main

import (
    "fmt"
    "log"
    "github.com/tealeg/xlsx"
)

func getLastFilledRow(xlFile *xlsx.File) map[string]int {
    lastRows := make(map[string]int)
    for _, sheet := range xlFile.Sheets {
        rmax := -1 // 初始化为 -1,便于区分全空表
        for r, row := range sheet.Rows {
            hasContent := false
            for _, cell := range row.Cells {
                if cell != nil && cell.String() != "" {
                    hasContent = true
                    break // 当前行已确认非空,无需检查其余单元格
                }
            }
            if hasContent {
                rmax = r
            }
        }
        // rmax 为 0-based 索引;若需 Excel 行号(1-based),则 rmax + 1
        lastRows[sheet.Name] = rmax + 1
    }
    return lastRows
}

func main() {
    xlFile, err := xlsx.OpenFile("data.xlsx")
    if err != nil {
        log.Fatal(err)
    }
    defer xlFile.Close()

    lastRows := getLastFilledRow(xlFile)
    for sheetName, rowNum := range lastRows {
        fmt.Printf("Sheet '%s': last filled row = %d\n", sheetName, rowNum)
    }
}

✅ 关键注意事项:

  • row.Cells 可能包含 nil 单元格(尤其跨列稀疏数据),务必先判空再调用 .String(),避免 panic;
  • 若整张表为空,rmax 保持 -1,返回 0(即 rmax + 1),可据此做空表校验;
  • 此方法按物理行顺序扫描,保证准确性,不受 Excel “已使用区域”(UsedRange)API 误判影响;
  • 性能友好:每行一旦发现非空单元格即短路跳出内层循环,避免冗余遍历。

总结:通过合理利用 range 的索引和 cell.String() 的内容判断,即可在 tealeg/xlsx 中稳定、高效地获取最后一行有效数据的位置。该方案简洁、可移植,是 Excel 数据预处理的基础能力之一。

热门AI工具

更多
LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

5239

2023.08.02

PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

446

2025.12.13

Figma AI自动化智能数据填充与交互生成实战
Figma AI自动化智能数据填充与交互生成实战

告别机械重复,详细演示如何用 AI 填充业务真实数据,并自动为页面添加交互连线,将静态设计稿快速转变为动态原型。

265

2026.05.13

excel对比两列数据异同
excel对比两列数据异同

Excel作为数据的小型载体,在日常工作中经常会遇到需要核对两列数据的情况,本专题为大家提供excel对比两列数据异同相关的文章,大家可以免费体验。

4541

2023.07.25

excel重复项筛选标色
excel重复项筛选标色

excel的重复项筛选标色功能使我们能够快速找到和处理数据中的重复值。本专题为大家提供excel重复项筛选标色的相关的文章、下载、课程内容,供大家免费下载体验。

2736

2023.07.31

excel复制表格怎么复制出来和原来一样大
excel复制表格怎么复制出来和原来一样大

本专题为大家带来excel复制表格怎么复制出来和原来一样大相关文章,帮助大家解决问题。

2540

2023.08.02

excel表格斜线一分为二
excel表格斜线一分为二

在Excel表格中,我们可以使用斜线将单元格一分为二。本专题为大家带来excel表格斜线一分为二怎么弄的相关文章,希望可以帮到大家。

1424

2023.08.02

excel斜线表头一分为二
excel斜线表头一分为二

excel斜线表头一分为二的方法有使用合并单元格功能方法、使用文本框功能方法、使用自定义格式方法。本专题为大家提供excel斜线表头一分为二相关的各种文章、以及下载和课程。

677

2023.08.02

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

60

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 43.3万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 3.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn