2017-11-29 1 views
0

:특정 열을 숨기는 방법은 무엇입니까? - <strong>출판</strong> (웹 페이지)를 구글 스프레드 시트에서 구글 스프레드 시트

나는 누군가가 민감한 데이터를 스프레드 시트의 네 개의 열을보고 좋아하지 않을 것입니다. 개인적인 용도로만이 네 열을 원합니다.

IMPORTRANGE 기능을 사용하는 솔루션은 해결책으로 적합하지 않습니다. 매월 새로운 스프레드 시트를 만들고 그 안에 많은 양의 데이터를 넣었 기 때문에 매월 4 개의 열을 새 시트에 복사하기 만하면됩니다. 이 열은 동일한 시트의 데이터에서 일부 계산을 수행합니다.

열을 숨기려고 시도했습니다. this way. 그러나 그것은 나를 위해 약간 불편하다.

추신. 이것은 같은 질문이 아닙니다. this one

+0

귀하의 질문은 정말 당신이 사용자가 할 수 있기를 원하는 명확 무엇을하지 않습니다하지만 난 건물을 조사하는 경향이있을 것 필요한 정보에 대한 액세스 권한을 부여하고 변경해야하는 정보를 제어하고 웹 사이트에 대한 직접 액세스 권한을 부여하지 않기 때문에 개인 정보를 보호 할 수 있습니다. HTML 자바 스크립트 형식 웹 앱의 형태를 취할 수도 있고 Google 비즈니스 클래스에 들어가서 앱 제조업체를위한 얼리 어답터 프로그램에 들어갈 수도 있습니다. – Cooper

+0

게시 된 Google 스프레드 시트 웹 페이지이므로 사용자는 셀을 편집 할 수는 없습니다. 어쨌든 App Maker를 사용해 볼 수도 있습니다. 계정을 작성하는 것이 좋습니다. 고맙습니다 –

답변

1

그들은 훨씬 쉽게 만드는 것을 편집 할 필요가 없기 때문에 그렇습니다.

다음은 웹 응용 프로그램에 테이블을 표시하는 코드입니다. 편집 가능 여부를 선택할 수 있으며 원하는 열을 그대로 둘 수 있습니다. 여기

var SSID=''; 
var sheetName=''; 
function onOpen() 
{ 
    SpreadsheetApp.getUi().createMenu('HTML Spreadsheet') 
    .addItem('Run Spreadsheet in Dialog', 'htmlSpreadsheet') 
    .addToUi(); 
} 

function htmlSpreadsheet(mode,edit){ 
    var mode=mode||'dialog'; 
    var edit=edit||true; 
    var br='<br />'; 
    var s=''; 
    var hdrRows=1; 
    var ss=SpreadsheetApp.openById(SSID); 
    var sht=ss.getSheetByName(sheetName); 
    var rng=sht.getDataRange(); 
    var rngA=rng.getValues(); 
    ; 
    switch(edit){ 
    case true: 
     s+='<table>' 
     for(var i=0;i<rngA.length;i++){ 
     s+='<tr>'; 
     for(var j=0;j<rngA[i].length;j++){ 
      if(i<hdrRows){ 
      s+='<th id="cell' + i + j + '">' + '<input id="txt' + i + j + '" type="text" value="' + rngA[i][j] + '" size="10" onChange="updateSS(' + i + ',' + j + ');" />' + '</th>'; 
      }else{ 
      s+='<td id="cell' + i + j + '">' + '<input id="txt' + i + j + '" type="text" value="' + rngA[i][j] + '" size="10" onChange="updateSS(' + i + ',' + j + ');" />' + '</th>'; 
      } 
     } 
     s+='</tr>'; 
     } 
     s+='</table>'; 
     break; 
    case false: 
     s+='<table style="border: 1px solid black;">' 
     for(var i=0;i<rngA.length;i++){ 
     s+='<tr>'; 
     for(var j=0;j<rngA[i].length;j++){ 
      if(i<hdrRows){ 
      s+='<th style="border: 1px solid black;">' + rngA[i][j] + '</th>'; 
      }else{ 
      s+='<td style="border: 1px solid black;">' + rngA[i][j] + '</th>'; 
      } 
     } 
     s+='</tr>'; 
     } 
     s+='</table>'; 
     break; 
    } 

    //s+='<div id="success"></div>'; 
    s+='</body></html>'; 
    switch (mode){ 
    case 'dialog': 
     var userInterface=HtmlService.createHtmlOutputFromFile('htmlss').setWidth(1000).setHeight(450); 
     userInterface.append(s); 
     SpreadsheetApp.getUi().showModelessDialog(userInterface, 'Spreadsheet Data for ' + ss.getName() + ' Sheet: ' + sht.getName()); 
     break; 
    case 'web': 
     var userInterface=HtmlService.createHtmlOutputFromFile('htmlss').setWidth(1000).setHeight(450); 
     return userInterface.append(s).setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL); 
    } 
} 

function updateSpreadsheet(i,j,value) 
{ 
    var ss=SpreadsheetApp.openById(SSID); 
    var sht=ss.getSheetByName(sheetName); 
    var rng=sht.getDataRange(); 
    var rngA=rng.getValues(); 
    rngA[i][j]=value; 
    rng.setValues(rngA); 
    var data = {'message':'Cell[' + Number(i + 1) + '][' + Number(j + 1) + '] Has been updated', 'ridx': i, 'cidx': j}; 
    return data; 
} 

function doGet() 
{ 
    var output=htmlSpreadsheet('web'); 
    return output; 
} 

는 htmlss.html 페이지의 :

<!DOCTYPE html> 
<html> 
    <head> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
    <script> 
    $(function() { 

    }); 
    function updateSS(i,j) 
    { 
     var str='#txt' + String(i) + String(j); 
     var value=$(str).val(); 
     $(str).css('background-color','#ffff00'); 
     google.script.run 
     .withSuccessHandler(successHandler) 
     .updateSpreadsheet(i,j,value) 
    } 
    function successHandler(data) 
    { 
     $('#success').text(data.message); 
     $('#txt' + data.ridx + data.cidx).css('background-color','#ffffff'); 
    } 
    console.log('My Code'); 
    </script> 
    <style> 
     th{text-align:left} 
    </style> 
    </head> 
    <body> 
    <div id="success"></div> 
관련 문제