Файлы csv, созданные с помощью parseCsv, хранятся где-нибудь? - PullRequest
1 голос
/ 28 января 2020

Я делаю веб в скрипте Google. Я выполнил следующий метод поиска: https://script.google.com/macros/s/AKfycbzxWqtu9bIhTXb2zP9fsOoFFqe3St1T1C91ZDVu747GCWxrR1c/exec

мой код Codi go .gs:

  function doGet(e) {

  Logger.log(Utilities.jsonStringify(e));
  if(!e.parameter.page){
  return HtmlService.createTemplateFromFile("Index").evaluate();
}

var template=HtmlService.createTemplateFromFile(e.parameter.page)
template.action=ScriptApp.getService().getUrl();
return template.evaluate();

  return HtmlService
  .createHtmlOutputFromFile('Index')
  .setSandboxMode(HtmlService.SandboxMode.IFRAME);

}

/*****************************  buscar asignado de trabajo  ********************************************/
function get_AsignadoSS(k){
 var sPers_asignado=k.pers_asignado;
 var sReg_Asig="LIMA";
 var contenido_ul="";

  var spreadsheetId_r = '1ykYOd5PWP5aZEREnRIqkPMLT1pSYrcRA6mfQHl7bL4I';  // Please set the spreadsheet ID.
  var targetSheet_r = 'Personal';  // Please set the sheet name.


 if(sPers_asignado!="") {

   var query_r = 'select A, B where ( B contains "'+sPers_asignado.toUpperCase()+'" or A contains "'+sPers_asignado.toUpperCase()+'" ) AND E = "'+sReg_Asig+'"';  // Please set the query for retrieving the values.

   var ss_r = SpreadsheetApp.openById(spreadsheetId_r);
   var sheetId_r = ss_r.getSheetByName(targetSheet_r).getSheetId();
   var url_r = "https://docs.google.com/spreadsheets/d/" + spreadsheetId_r + "/gviz/tq?gid=" + sheetId_r + "&tqx=out:csv&tq=" + encodeURIComponent(query_r);
   var res_r = UrlFetchApp.fetch(url_r, {headers: {Authorization: "Bearer " + ScriptApp.getOAuthToken()}});
   var row = Utilities.parseCsv(res_r.getContentText());
   //https://docs.google.com/spreadsheets/d/1z4izqpus1yE6rZiqY1ttCEYA3NO3d7J3bZ4oFgQW330/gviz/tq?gid=Usuarios&tqx=out:csv&tq=encodeURIComponent('select A, B where ( B contains "li" )')    
   if(row.length>6){
      var maximo=7;
   }else{
      var maximo=row.length;
   }
   //var contenido_ul=sCodigo_site;
   var contenido_ul=contenido_ul+"<ul id='country-list' class='list-group'>";
   for (var i = 1; i < maximo; i++) {
     var nombre_site = row[i][1].toString();
     var pasar_nom_site='"'+row[i][1].toString()+'"';
     var contenido_ul=contenido_ul+"<li class='list-group-item' style='text-align: left' onClick='selectCountry("+pasar_nom_site+");'>"+nombre_site+"</li>";
   }
      var contenido_ul=contenido_ul+"</ul>";
   }

  if(sPers_asignado=="") {
     var contenido_ul="";
   }
     return contenido_ul;
   }

и мой индекс Index. html is

  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script>
  function buscar_asignado(){
   google.script.run.withSuccessHandler(get_Asignado).get_AsignadoSS(document.forms[0]);
   }
function get_Asignado(data){
    //alert("tt");
    $("#suggesstion-box-asignado").show();
    $("#suggesstion-box-asignado").html(data);
    }

function selectCountry(codigo) {
    $("#pers_asignado").val(codigo);
    $("#suggesstion-box-asignado").hide();    
}

/*----------------codigo esencial para conectar con codigo.GS----------------------*/
function preventFormSubmit() {
  var forms = document.querySelectorAll('form');
  for (var i = 0; i < forms.length; i++) {
    forms[i].addEventListener('submit', function(event) {
      event.preventDefault();    
    });
  }   
}
window.addEventListener('load', preventFormSubmit);


</script>
  <!DOCTYPE html>
   <html>
    <head>
     <base target="_top">
     <link rel="stylesheet" href="https://cdn.datatables.net/1.10.20/css/dataTables.bootstrap4.min.css">
     <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.css">
     <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.0/css/all.css" integrity="sha384-lZN37f5QGtY3VHgisS14W3ExzMWZxybE1SJSEsQp9S+oqd12jhcu+A56Ebc1zFSJ" crossorigin="anonymous">
     <link rel="stylesheet" href="https://cdn.datatables.net/responsive/2.2.3/css/responsive.bootstrap4.min.css">
     <link rel="stylesheet" href="https://cdn.datatables.net/fixedheader/3.1.6/css/fixedHeader.dataTables.min.css"> 
     </head>
    <body>
   <div class="modal-header" style="background-color: red;color: white;padding-top:5px;padding-bottom:5px">
     <CENTER><label style="font-size: 30px;font-family: monospace;font-weight: normal;color:white">ACTIVIDADES</label></CENTER>
    </div>

   <div id="todo_contenido"style="display:block">
      <center><br><br>
       <div class="modal-content" style="width:95%">
       <div class="modal-body"> 
       <form id="datosTrabajo" name="datosTrabajo">

          <div class="form-group row">
             <label for="pers_asignado" class="col-sm-2 col-form-label">Asignado:</label>
             <div class="col-sm-4">
              <input type="text" class="form-control" id="pers_asignado" name="pers_asignado" onkeyup="buscar_asignado();" placeholder="Nombre Asignado..." style="background-color: white">
              <div id="suggesstion-box-asignado" style="position: absolute;z-index: 1"></div>
             </div>
             <label for="tipo_trabajo" class="col-sm-2 col-form-label">Tipo Trabajo:</label>
             <div class="col-sm-4">
                   <select class="form-control" id="tipo_trabajo" name="tipo_trabajo" >
                        <option value="">Select Tipo Equipo:</option>
                        <option value="ATPs">ATPs</option>
                        <option value="Caceria Interferencia">Caceria Interferencia</option>
                        <option value="Desbalance RTWP">Desbalance RTWP</option>
                        <option value="Respaldo Baterias">Respaldo Baterias</option>
                        <option value="Site Audit">Site Audit</option>
                        <option value="Trabajos TX">Trabajos TX</option>
                        <option value="Prueba de Llamadas">Prueba de Llamadas</option>
                        <option value="PIM Logico">PIM Logico</option>
                        <option value="Administrativo">Administrativo</option>
                        <option value="OTROS">OTROS</option>
                      </select>
              </div>
           </div>
          </form>
         </div>
      </div>
     <br>
     </center>
     </div>
     <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
     <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
     <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
     <script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
     <script src="https://cdn.datatables.net/1.10.20/js/dataTables.bootstrap4.min.js"></script>
     <script src="https://cdn.datatables.net/responsive/2.2.3/js/dataTables.responsive.min.js"></script>
     <script src="https://cdn.datatables.net/responsive/2.2.3/js/responsive.bootstrap4.min.js"></script>
     <script src="https://cdn.datatables.net/fixedheader/3.1.6/js/dataTables.fixedHeader.min.js"></script>
      </body>
    </html>

Затем каждый раз, когда вводится буква, производится новый поиск. В этом случае поиск становится нормальным, поскольку он происходит только в 100 записях. Но мой вопрос в том, будет ли это каждый раз, когда делается новый запрос (каждый раз, когда вводится ди git). Эти CSV-файлы хранятся где-то. У меня проблема в том, что у меня есть более обширный код, который ищет 6000 записей; но вы не выполняете поиск, и есть сотрудники, которые подключаются к этому веб-сайту для ввода информации и испытывают проблемы.

Или будет ли какой-либо другой способ поиска в Google Script?

1 Ответ

0 голосов
/ 28 января 2020

parseCsv() - Возвращает представление табличного 2D-массива строки CSV. Таким образом,

var A=Utilities.parseCsv(csvdata);
sheet.getRange(1,1,A.length,A[0].length).setValues(A);

поместит данные в лист.

Массив csv и 2d не сохраняются где-либо, если вы не храните их где-то.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...