Google เอกสาร API ช่วยให้คุณแทรกหรือลบข้อความในเอกสารได้ กำลังย้ายข้อความ
เกี่ยวข้องกับการดำเนินการทั้ง 2 แบบ ซึ่งนำหน้าด้วย get
ของคอนเทนต์
คุณสามารถแทรกหรือลบข้อความในเอกสาร กลุ่มของ tab (เนื้อหา ส่วนหัว ส่วนท้าย หรือเชิงอรรถ)
แทรกข้อความ
หากต้องการแทรกข้อความในเอกสาร ให้ใช้
documents.batchUpdate
และเพิ่ม
InsertTextRequest
โดยมีข้อความและตำแหน่งเป็นเพย์โหลด
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแทรกชุดสตริงข้อความ ตำแหน่งดัชนีที่กำหนดในส่วนเนื้อหาของเอกสาร ตัวอย่างนี้ใช้ ออฟเซ็ตเป้าหมาย (25, 50 และ 75) และแทรกสตริงความยาว 10 อักขระในแต่ละที่ ตำแหน่งนั้น
Java
List<Request> requests = new ArrayList<>(); requests.add(new Request().setInsertText(new InsertTextRequest() .setText(text1) .setLocation(new Location().setIndex(25).setTabId(TAB_ID)))); requests.add(new Request().setInsertText(new InsertTextRequest() .setText(text2) .setLocation(new Location().setIndex(50).setTabId(TAB_ID)))); requests.add(new Request().setInsertText(new InsertTextRequest() .setText(text3) .setLocation(new Location().setIndex(75).setTabId(TAB_ID)))); BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests); BatchUpdateDocumentResponse response = docsService.documents() .batchUpdate(DOCUMENT_ID, body).execute();
PHP
$requests = array(); $requests[] = new Google_Service_Docs_Request(array( 'insertText' => array( 'text' => $text1, 'location' => array( 'index' => 25, 'tabId' => TAB_ID, ), ), 'insertText' => array( 'text' => $text2, 'location' => array( 'index' => 50, 'tabId' => TAB_ID, ), ), 'insertText' => array( 'text' => $text3, 'location' => array( 'index' => 75, 'tabId' => TAB_ID, ), ), )); $batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(array( 'requests' => $requests )); $response = $service->documents->batchUpdate($documentId, $batchUpdateRequest);
Python
requests = [ { 'insertText': { 'location': { 'index': 25, 'tabId': TAB_ID }, 'text': text1 } }, { 'insertText': { 'location': { 'index': 50, 'tabId': TAB_ID }, 'text': text2 } }, { 'insertText': { 'location': { 'index': 75, 'tabId': TAB_ID }, 'text': text3 } }, ] result = service.documents().batchUpdate( documentId=DOCUMENT_ID, body={'requests': requests}).execute()
การแทรกแต่ละรายการจะเพิ่มดัชนีที่มีลำดับเลขทั้งหมดตามขนาดของฟิลด์ ข้อความที่แทรก ตัวอย่างจะคำนวณผลของการเปลี่ยนแปลงดัชนีเหล่านี้ไว้ล่วงหน้า การแทรกที่ตามมาจะเกิดขึ้นที่ออฟเซ็ตใหม่ที่แก้ไขแล้ว ดังนั้นเพื่อแทรก ที่ค่าชดเชยเป้าหมายดั้งเดิมที่ 25, 50 และ 75 ดัชนีการแทรกจริง ได้แก่
- การแทรกครั้งแรกจะเพิ่มอักขระ 10 ตัวที่ออฟเซ็ต 25
- การแทรกตัวที่สองจะเพิ่มอักขระ 10 ตัวที่ออฟเซ็ต 50+10=60
- การแทรกตัวที่สามเพิ่มอักขระ 10 ตัวที่ออฟเซ็ต 75+10+10=95
ลบข้อความ
หากต้องการลบข้อความจากเอกสาร ให้สร้าง
Range
ที่กำหนดช่วงของ
ข้อความที่จะลบ จากนั้นใช้เมธอด documents.batchUpdate
และรวม
DeleteContentRangeRequest
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีลบข้อความระหว่างดัชนี 10 และจัดทำดัชนี 24 ในส่วนเนื้อหาของเอกสาร
Java
List<Request> requests = new ArrayList<>(); requests.add(new Request().setDeleteContentRange( new DeleteContentRangeRequest() .setRange(new Range() .setStartIndex(10) .setEndIndex(24) .setTabId(TAB_ID)) )); BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests); BatchUpdateDocumentResponse response = docsService.documents() .batchUpdate(DOCUMENT_ID, body).execute();
PHP
$requests = array(); $requests[] = new Google_Service_Docs_Request(array( 'deleteContentRange' => array( 'range' => array( 'startIndex' => 10, 'endIndex' => 24, 'tabId' => TAB_ID ), ), )); $batchUpdateRequest = new Google_Service_Docs_BatchUpdateDocumentRequest(array( 'requests' => $requests )); $response = $service->documents->batchUpdate($documentId, $batchUpdateRequest);
Python
requests = [ { 'deleteContentRange': { 'range': { 'startIndex': 10, 'endIndex': 24, 'tabId': TAB_ID } } }, ] result = service.documents().batchUpdate( documentId=DOCUMENT_ID, body={'requests': requests}).execute()
ลดความซับซ้อนของกรณีต่างๆ โดยการเขียนย้อนกลับ เช่นเดียวกับการแทรก การลบ ข้อความ เปลี่ยนแปลงดัชนีของข้อความทั้งหมด "ด้านล่าง" ไว้ในเซกเมนต์ ขอย้ำอีกครั้งว่าการเขียน ย้อนกลับ ช่วยลดความยุ่งยากในการจัดการดัชนี
ย้ายข้อความ
หากต้องการย้ายข้อความ ให้ลบข้อความในตำแหน่งเดียวแล้วนำไปแทรกที่อื่น การลบเนื้อหาไม่ได้ทำให้คุณมีสำเนาเนื้อหา (ไม่มีแนวคิดเทียบเท่าเกี่ยวกับ คลิปบอร์ด) คุณจึงต้องแยกเนื้อหาของช่วงก่อนเพื่อให้สามารถใช้ ในคำขอแทรกข้อความ