使用Google Apps脚本通过htmlservice从googlesheet输出数据

时间:2019-05-06 13:50:25

标签: html json google-apps-script

我的任务是提供电子表格中的数据。有奖品的职位。我想使用html模板和HtmlService将其提供给用户

我已经准备了html模板,其中包含要提供数据的位置。 我编写了脚本,以收集来自googleSheet的数据并存储在对象中。

google apps env中的js:

var htmlOutput = HtmlService
       .createHtmlOutputFromFile('kosztorys.html')
       .setWidth(500)
       .setHeight(550)
SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'Some title');

我现在很困惑,不知道该怎么办。我已经尝试了一些在互联网上找到的解决方案,但是它不起作用。如何将数据放入模板?

1 个答案:

答案 0 :(得分:0)

我的猜测是您需要这样的东西:

class MyFragment : Fragment() {

    private var item: Item? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        item = arguments?.getParcelable(BUNLDE_ITEM)
    }

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        val root: View = inflater.inflate(R.layout.my_fragment, container, false)
        val textViewTitle = root.findViewById<View>(R.id.textViewTitle) as TextView

        item?.let {
            textViewTitle.text = "text"
        }
        return root
    }

    companion object {
        private const val BUNLDE_ITEM = "item"
        fun newInstance(item: Item) = MyFragment().apply {
            arguments = Bundle().apply {
                putParcelable(BUNLDE_ITEM, item)
            }
        }
    }
}

通常,您不需要为文件名提供var htmlOutput = HtmlService .createHtmlOutputFromFile('kosztorys') .evaluate() .setWidth(500) .setHeight(550) SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'Some title'); ,因为Google脚本会为您添加文件名。因此,在您的情况下,程序正在寻找名为.html的文件。

Here's an example of a templated HTML webapp

下面是一个示例,显示了如何将电子表格的内容添加到对话框中。

kosxtorys.html.html

电子表格的外观如下:

enter image description here

这是对话框的样子:

enter image description here

有许多方法可以从电子表格输出数据,这在很大程度上取决于您的数据。但这只是众多之一。