第一行当字段名(「姓名」「手机」),下面按列号读写。不必记 A/B 列。表在工程根 data\名单.xlsx(相对路径)。行列从 1 起。
窗口需有:按钮读取、按钮写出、标签1。先准备好表头行。
Excel类 g_book
函数 找列 (文本 表头) 整数 {
整数 列数 = g_book.取列数()
整数 c
循环 (列数, c) {
如果 (g_book.取单元格(1, c + 1) == 表头) {
返回 (c + 1)
}
}
返回 (0)
}
函数 按钮读取.单击 (整数 X, 整数 Y) {
如果 (g_book.打开("data\\名单.xlsx") == 假) {
标签1.标题 = g_book.取错误()
返回 ()
}
整数 姓名列 = 找列("姓名")
整数 手机列 = 找列("手机")
如果 (姓名列 == 0 || 手机列 == 0) {
g_book.关闭()
标签1.标题 = "第一行需要「姓名」和「手机」"
返回 ()
}
整数 行数 = g_book.取行数()
文本 摘要 = ""
整数 i
循环 (行数 - 1, i) {
整数 行 = i + 2
文本 名 = g_book.取单元格(行, 姓名列)
文本 机 = g_book.取单元格(行, 手机列)
如果 (名 != "") {
摘要 = 摘要 + 名 + " " + 机 + " / "
}
}
g_book.关闭()
标签1.标题 = 摘要
}
函数 按钮写出.单击 (整数 X, 整数 Y) {
如果 (g_book.打开("data\\名单.xlsx") == 假) {
如果 (g_book.新建() == 假) {
标签1.标题 = g_book.取错误()
返回 ()
}
g_book.置单元格(1, 1, "姓名")
g_book.置单元格(1, 2, "手机")
}
整数 姓名列 = 找列("姓名")
整数 手机列 = 找列("手机")
如果 (姓名列 == 0) {
姓名列 = 1
g_book.置单元格(1, 姓名列, "姓名")
}
如果 (手机列 == 0) {
手机列 = 2
g_book.置单元格(1, 手机列, "手机")
}
整数 行 = g_book.取行数() + 1
如果 (行 < 2) {
行 = 2
}
g_book.置单元格(行, 姓名列, "张三")
g_book.置单元格(行, 手机列, "13800000000")
如果 (g_book.保存("data\\名单.xlsx") == 假) {
标签1.标题 = g_book.取错误()
g_book.关闭()
返回 ()
}
g_book.关闭()
标签1.标题 = "已写入第 " + 到文本(行) + " 行"
}
| 错误 | 正确 |
|---|---|
| 当 0 起下标 | 取单元格(1, 1) 是 A1 |
打开 .xls |
只支持 .xlsx |
| 用列号写死业务 | 先扫第一行表头再读写 |
对照:excel.md