在表格中搜索图表

时间:2014-03-27 17:24:26

标签: google-apps-script

我试图从我的驱动器开发下载文件列表,然后解析了这些信息。现在,我正在使用UiApp进行显示和搜索。

我有一些使用.StringFilter的搜索框,但找不到文字中第一个的单词并不起作用。

我希望有一个搜索框,遍历表格中的每个文字,并过滤所有匹配的信息。

编辑:

我得到了一个答案,但另一个问题。


原始

我的代码如下,这是app

function getBaulFile(){
   var d = DocsList.getFolderById('FolderId').getFiles();
   var listaArchivos = DocsList.getFolderById('FolderId').getFilesByType('spreadsheet');
   for (var i = 0 ; i < d.length ; i++){
       if(d[i].getName() == "baul"){
           var archivoId = d[i].getId();
       }
   }
return(SpreadsheetApp.openById(archivoId).getSheetByName('baul').getDataRange());
}

function isLink(cadena){
  return (cadena[0] == '<')
}

function turnToLink(cadena){
  if (!(cadena == '#' || cadena == 'sin enlace')) {
    return('<a href="' + cadena + '"> - Link - </a>');
  } else {
    return ('sin enlace');
   }
}


function parsedSpreadSheet(){
  var hoja = getBaulFile().activate();
  for (var i = 2;i<= hoja.getHeight();i++){ // html de los enlaces
    var t = hoja.getCell(i,hoja.getWidth()).getValue();
    if (! isLink(t)){
      hoja.getCell(i,hoja.getWidth()).setValue(turnToLink(t));
    }
  }
  return hoja.getDataTable(true)
}




function doGet() {
  var datos = parsedSpreadSheet() // para CSV hay que programar distinto y construir la DataTable.


  var sectorFilter = Charts.newCategoryFilter()
      .setFilterColumnLabel("sector")
      .setAllowMultiple(true)
      .build();

  var tipoFilter = Charts.newCategoryFilter()
      .setAllowMultiple(true)
      .setFilterColumnLabel("tipo")
      .build();
  var searchFilter = Charts.newStringFilter()
      .setFilterColumnLabel("Titulo")
      .build();
  var searchDesc = Charts.newStringFilter()
      .setFilterColumnLabel("descripcion")
      .build();
  var searchGood = Charts.n

  var tableChart = Charts.newTableChart()
      .setOption('allowHtml', true)
      .setDimensions(0,0)
      .enableSorting(true)
      .useAlternatingRowStyle(true)
      .build();



  var dashboard = Charts.newDashboardPanel()
      .setDataTable(datos)
      .bind([sectorFilter, tipoFilter, searchFilter, searchDesc], [tableChart])
      .build();

  var uiApp = UiApp.createApplication().setTitle('Baul de Recursos')
  var anchoTotal = '100%';
dashboard.add(uiApp.createSimplePanel().setWidth('95%').setStyleAttributes({'margin':'40 100px'})


                .add(uiApp.createVerticalPanel()
                     .add(uiApp.createHTML('<h1>Baul de recursos</h1>'))
                     .add(uiApp.createImage('#')) 
                     .add(uiApp.createHTML('<b style="margin-left: 150px;">Descripción</b>'))
                  .add(uiApp.createHorizontalPanel().setVerticalAlignment(UiApp.VerticalAlignment.MIDDLE)
                      .add(sectorFilter)
                      .add(tipoFilter)
                      .setSpacing(15)
                 //.setWidth(anchoTotal)
                     )

                 .add(uiApp.createHorizontalPanel()        
                      .add(searchFilter)
                      .add(searchDesc)
                      .setSpacing(15)                
                     )

                 .add(uiApp.createHorizontalPanel()
                      .add(tableChart).setBorderWidth(1).setHorizontalAlignment(UiApp.HorizontalAlignment.CENTER).setWidth(anchoTotal)
                     )
               //.setWidth(anchoTotal)
                )
           );

  uiApp.add(dashboard).setStyleAttribute('float','center');
return uiApp;
}

1 个答案:

答案 0 :(得分:0)

我明白了!

  var searchDesc = Charts.newStringFilter()
      .setFilterColumnLabel("descripcion")
      .setMatchType(Charts.MatchType.ANY)
      .build();

对于每个搜索字段,您可以设置.setMatchType(...) 我想知道是否可以创建搜索字段,以便在dataTable中的多个字段列中进行搜索。