Google 스프레드 시트를 Microsoft Excel 및 Microsoft Word의 Google 문서에 포함시킬 수 있습니까? 스프레드 시트의 차트는 어떻습니까?
오늘 (2016-05-20)부터 Google은 Google 스프레드 시트의 차트를 Google 문서에 포함하는 기능을 출시하기 시작했습니다. 현재 내 3 개의 Google 계정 중 2 개가 Insert
메뉴에서 Insert→Chart
항목 아래에 새로운 Insert→Drawing…
하위 메뉴를 사용하여 옵션을 사용할 수 있습니다.
이러한 차트를 삽입하면 원래 스프레드 시트에 연결된 상태로 유지됩니다. 원하는 것이 테이블 형식 데이터 인 경우 데이터를 간단한 테이블로 표시하는 데 사용할 수있는 테이블 차트 유형이 있습니다.
이 단계에는 몇 가지 제한 사항이 있으며 (예 : 차트 크기) 차트를 삽입하려면 스프레드 시트에 차트가 있어야하지만 올바른 방향으로 가고 있습니다.
스프레드 시트 또는 테이블을 삽입하려면 시트에서 문서로 복사하여 붙여 넣기하여 Google 스프레드 시트에서 테이블 추가 를 사용하고 연결된 옵션을 선택하십시오.
문서가 열려있는 동안 소스 스프레드 시트를 수정하면 차트가 not 실시간으로 업데이트되지만 문서는 변경 사항을 감지하여 포함 된 스프레드 시트 위에 pdate 단추를 제공합니다. 소스의 최신 변경 사항을 반영합니다.
AFAIK의 경우 스프레드 시트에서 텍스트 문서로만 복사하여 붙여 넣을 수 있습니다. 스프레드 시트는 표로 삽입되었지만 연결되어 있지 않습니다. 스프레드 시트에서 무언가를 변경하면 텍스트 문서에 반영되지 않습니다.
물론, 나는 틀린 것으로 판명되고 싶습니다!
다음은 주어진 스프레드 시트 내에서 지정된 범위의 내용이 포함 된 테이블을 삽입 할 수있는 스크립트 기반 솔루션입니다. 데이터를 실시간으로 동기화하는 방법을 찾지 못했습니다. 잠재적으로 많은 양의 데이터가 스프레드 시트로 편집 될 때마다 전송되어야하는 데이터가 많기 때문에 실용적이지 않은 것 같습니다. 대신, 스크립트는 사용자 정의 메뉴 항목 "업데이트 데이터"를 문서에 추가합니다.
스크립트는 문서에 바인딩되어야합니다 (즉, 문서 메뉴에서 도구> 스크립트 편집기를 사용하여 생성). 스프레드 시트 URL과 사용할 시트 및 범위는 스크립트 내에 지정됩니다. 시트에 모든 데이터를 포함 시키려면 .getRange(rangeName)
을 .getDataRange()
으로 바꾸십시오.
UpdateData 함수가 처음 실행될 때 문서 끝에 테이블을 추가합니다. 이후 실행시 테이블이 제자리에 업데이트됩니다 (즉, 테이블 뒤에 더 많은 텍스트가 추가되면 순서가 유지됨).
붙여 넣은 복사본이 새 개체이므로 테이블을 잘라 붙여 넣으면 업데이트 프로세스가 중단됩니다 (스크립트가 끝에 새 테이블을 추가 함). 대신, 테이블 주위에 텍스트를 잘라 붙여 넣기하십시오.
function onOpen() {
DocumentApp.getUi()
.createMenu('Custom')
.addItem('Update Data', 'updateData')
.addToUi();
}
function updateData() {
var ssUrl = ' spreadsheet url here ';
var sheetName = 'Sheet2'; // name of sheet to use
var rangeName = 'A1:C3'; // range of values to include
var values = SpreadsheetApp.openByUrl(ssUrl)
.getSheetByName(sheetName)
.getRange(rangeName)
.getValues();
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var ranges = doc.getNamedRanges('embeddedSheet-range');
if (ranges.length == 0) {
var table = body.appendTable(values);
}
else {
tableRange = ranges[0];
table = tableRange.getRange().getRangeElements()[0].getElement();
var ind = body.getChildIndex(table);
tableRange.remove();
body.removeChild(table);
table = body.insertTable(ind, values);
}
var rangeBuilder = doc.newRange();
rangeBuilder.addElement(table);
doc.addNamedRange('embeddedSheet-range', rangeBuilder.build());
}
수동과 더불어 매시간마다 데이터를 동기화 할 수도 있습니다. 스크립트 편집기의 리소스 메뉴에서 시간 기반 트리거를 추가하여 updateData 함수를 실행하십시오.
대신이 스크립트를 소스 스프레드 시트에 바인딩하도록 조정할 수도 있습니다. 이를 위해서는 문서를 여는 방법 (예 : URL)을 변경해야하지만 논리는 동일합니다.
스크립트의 성가신 부분은 문서에서 기존 테이블의 핸들을 얻는 것입니다. 이를 위해서는 명명 된 범위 내에 배치해야합니다. 또한 기존 테이블의 항목을 엉망으로 만드는 것보다 테이블 요소를 완전히 바꾸는 것이 훨씬 편리합니다. 명명 된 범위는 변경할 수 없으므로 포함 된 테이블로 제거 된 다음 새 테이블과 함께 다시 생성됩니다.
그래 넌 할수있어. 시트의 내용을 복사하여 문서에 붙여 넣습니다. 오른쪽 모서리에 스프레드 시트에 연결할 것인지 묻습니다. 수정 한 경우 스프레드 시트를 편집 한 후 문서에서 업데이트 아이콘을 클릭하여 변경 사항을 문서에 통합 할 수 있습니다.
대안은 Google 사이트 도구 또는 iframe 컨텐츠 포함을 허용하는 다른 컨텐츠 편집기를 사용하는 것입니다.
Google 사이트 도구 페이지에 Google 스프레드 시트를 포함하려면