Kotlin从Google表格读取并显示数据

时间:2019-12-24 18:29:36

标签: kotlin

有人可以帮助我完成我想做的事情吗?我已经花了几个小时观看视频,并亲自浏览Google。但是,我没办法,因为我找不到从Google表格中读取一个单元格值的任何帮助,也找不到Kotlin的代码。

我只想在MainActivity上的文本视图中的Google表格中的B2单元格中显示该值。

我是Android应用开发的新手。

先谢谢了。

1 个答案:

答案 0 :(得分:0)

我建议制作Google工作表public,然后以CSV或其他格式访问它,但CSV最简单。您可以根据工作表ID构造网址:

val url = "https://docs.google.com/spreadsheets/d/e/${id}/pub?output=csv"

例如,您可以使用ktor获取内容:

suspend fun getUrlAsString(url: String): String {
    val client = HttpClient(Android) {
    }
    return client.get<String>(url)
}

有关如何解析csv的示例,但是您可以使用一些库或自己解析文本,这很简单:

fun parseCsv(text: String): List<Map<String, String>> {
    val reader = CSVReaderBuilder(StringReader(text))
            .build()
    val lines = reader.readAll()
    val firstLine = lines.removeAt(0)

    val result = lines.map { line ->
        firstLine.mapIndexed { index, label ->
            label to line[index]
        }.toMap()
    }
    if (result.size > 4)
        println(result[4])
    return result

}