如何格式化我可以使用电子表格中的数据复制/粘贴任何文本

时间:2012-07-21 17:49:39

标签: google-apps-script

我在电子表格上有一个数据库程序,其数据按行和列排列,我正在处理的是一个允许用户搜索数据库并显示如下所示结果的UI。 “表格”显示结果以及包含最重要数据的可滚动表格中的15个下一个项目以及底部应包含所选项目的文本区域,其格式为我可以复制和粘贴的格式保持布局的任何文档(新行,间距......)。注意:脚本还应检测表中的行是否具有焦点。 这个文本区域应该提供2个(现在)所谓的“格式”,一个用于屏幕捕获中显示的字母,另一个用于所有字段(逗号或制表符分隔)在几行上(我称之为'原始数据') ')用于任何其他目的(使用radioButtons选择)。

我设法执行搜索,表填充和UI设计但是(这里终于是实际问题)我不知道如何在textarea中获取格式化文本...我应该使用HTML?

下面是我现在使用的屏幕截图和UI代码,我猜图片让事情更加清晰,至少我希望;-) enter image description here

function buildUi() {
   var app = UiApp.createApplication().setTitle("BrowseList Test")
       .setHeight(340).setWidth(800).setStyleAttribute("background-color","beige").setStyleAttribute('padding','20');
    var scroll = app.createScrollPanel().setPixelSize(750,150)
    var vpanel = app.createVerticalPanel();
    var cell = new Array();
    var cellWidth = [45,135,150,250,50,100]
    var row = new Array();
    for(vv=0;vv<15;++vv){
      row[vv]=app.createHorizontalPanel();
      vpanel.add(row[vv]);
       for(hh=0;hh<cellWidth.length;++hh){
        cell[hh+(vv)*cellWidth.length]=app.createTextBox().setWidth(cellWidth[hh]+"");
        row[vv].add(cell[hh+(vv)*cellWidth.length])
        }
      }
app.add(scroll.add(vpanel))
// Initial populate
var data = ss.getDataRange().getValues();
    for(vv=0;vv<15;++vv){
       for(hh=0;hh<cellWidth.length;++hh){
         var rowpos=vv+1+offset
         var cellpos = hh+(vv)*cellWidth.length
        cell[cellpos].setValue(data[rowpos][hh])
        }
      }
  var grid = app.createGrid(2,9).setWidth('700')
  grid.setWidget(1, 0, app.createLabel('search'));
  grid.setWidget(1, 1, app.createTextBox().setName('search').setId('search'));
  grid.setWidget(1, 2, app.createRadioButton('mode','strict'));
  grid.setWidget(1, 3, app.createRadioButton('mode','global').setValue(true));
  grid.setWidget(1, 5, app.createLabel(' ').setWidth('100'));
  grid.setWidget(1, 6, app.createLabel('show mode'));
  grid.setWidget(1, 7, app.createRadioButton('show','letter').setValue(true));
  grid.setWidget(1, 8, app.createRadioButton('show','raw data'));
  app.add(grid);

  var result = app.createTextArea().setPixelSize(700,100)
  app.add(result)

ss.show(app);
 }

2 个答案:

答案 0 :(得分:1)

您是否考虑过Rich Text Area?并使用setHTML方法。

答案 1 :(得分:0)

为什么不创建一个flextable来保存搜索结果。将其更改为所需格式(使用逗号)并通过ScriptProperties存储,您可以复制/粘贴。