셀 내에서 개별 텍스트 색상을 변경하는 스크립트 같은 여러

일정에 따라 수백 명의 직원 이름을 가진 Google 스프레드 시트가 있습니다. 각 셀에는 해당 셀 내에 다음과 같은 여러 이름이 있습니다.

First Last
First Last
First Last

First Last
First Last

많은 이름은 빨간색으로 표시되고 다른 이름은 검은 색으로 유지됩니다. 스크립트를 사용하여 여분의 줄 바꿈을 제거하여 이름을 이것으로 축소합니다 (일부는 휴무와 같은 것들에 대해 찾기 / 바꾸기를 사용하여 제거되어 빈 줄 바꿈이 발생합니다).

First Last
First Last
First Last
First Last
First Last

문제는이 스크립트가 실행될 때 빨간색 이름의 글꼴이 검은 색으로 바뀐다는 것입니다. 셀 내의 이러한 개별 줄을 다시 빨간색으로 바꾸는 for 루프를 작성하는 방법을 알 수 없습니다. 셀의 모든 텍스트가 빨간색으로 표시되거나 HTML 코드는 빨간색으로 표시됩니다.

이 작업을 수행하는 방법에 대한 아이디어가 있습니까?



답변

현재로서는 내용을 처리하는 두 가지 종류의 범위 속성, 즉 값과 수식이 있습니다. 불행히도 셀 내용을 사용하여 셀 내용을 변경하면 내용의 일부에 적용된 형식이 제거됩니다.

이 경우 사용자는 Google Apps Script Issue Tracker 를 살펴보고 기능 요청이없는 경우 기능 요청을 검색 할 수 있습니다. 찾고있는 기능에 대한 기능 요청이 이미 존재하는 경우 Google Apps 스크립트 팀에서 기능 요청에 별표를 표시 한 사용자 수를 우선 순위로 간주하여 해당 기능에 별표를 표시하십시오.

다음 기능 요청에 별표를 표시하십시오.

문제 6000 : 프로그래밍 방식으로 셀 내용의 일부 처리


답변

업데이트 :이 게시물에 언급 된 방법이 2019 년 1 월 22 일 릴리스 노트 에 포함되었습니다.

누군가이 문서화되지 않은 방법을 발견 하고이 질문과 관련된 예를 공유했습니다.

에서 코멘트 (21) 셀 내용의 일부 프로그램에 언급 처리하는 내 이전의 대답 .

셀 텍스트의 다른 부분이 다른 스타일 인 셀의 현재 형식을 얻을 수도 있습니다.

  var richText = ss.getCurrentCell().getRichTextValue();
  var runs = richText.getRuns();
  for (var i=0; i<runs.length; i++)
  {
    // get the style of this section of text, between startIndex and endIndex
    var run = runs[i];
    var startIndex = run.getStartIndex();
    var endIndex = run.getEndIndex();
    var styleBold = run.getTextStyle().isBold();
  }

아마도 이번 주에 Google Cloud Next 18 샌프란시스코 에서 Google 개발자 블로그에 새로운 방법이 발표 될 것 입니다.

관련