ใช้งานรายการ

Google เอกสาร API รองรับการสร้างรายการในเอกสารใหม่ การแปลงย่อหน้าข้อความธรรมดาที่มีอยู่เป็นรายการแบบมีหัวข้อย่อย และการนำหัวข้อย่อยออกจากย่อหน้า

สร้างรายการที่เรียงหมายเลขในเอกสารใหม่

Docs API รองรับการสร้างรายการแบบมีหมายเลขในเอกสารใหม่โดย การแทรกข้อความแล้วใช้รูปแบบรายการกับข้อความในคำขอแบบกลุ่มเดียว

วิธีสร้างรายการที่เรียงหมายเลขในเอกสารใหม่

  1. ใช้เมธอด documents.create เพื่อสร้างเอกสาร

  2. ใช้วิธี documents.batchUpdate และระบุ InsertTextRequest เพื่อเพิ่มเนื้อหาลงในเอกสาร ใช้อักขระขึ้นบรรทัดใหม่ (\n) เพื่อคั่น รายการในลิสต์

  3. ในการอัปเดตแบบเป็นชุดเดียวกัน ให้ใส่ CreateParagraphBulletsRequest Range เพื่อ ระบุช่วงของข้อความ และ BulletGlyphPreset เพื่อตั้งค่ารูปแบบการกำหนดหมายเลข

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างเอกสาร แล้วแทรกรายการ 3 รายการเป็นรายการที่เรียงตามหมายเลข BulletGlyphPreset ใช้ NUMBERED_DECIMAL_ALPHA_ROMAN เพื่อจัดรูปแบบรายการ ซึ่งหมายความว่าระดับการซ้อน 3 ระดับแรกของรายการที่เรียงหมายเลขจะแสดงด้วยตัวเลขทศนิยม ตัวอักษรพิมพ์เล็ก และเลขโรมันตัวพิมพ์เล็ก

Java

Document doc = new Document().setTitle("New List Document");
doc = docsService.documents().create(doc).execute();
String documentId = doc.getDocumentId();

List<Request> requests = new ArrayList<>();
requests.add(new Request().setInsertText(new InsertTextRequest()
        .setText("Item 1\nItem 2\nItem 3\n")
        .setLocation(new Location().setIndex(1).setTabId(TAB_ID))));

requests.add(new Request().setCreateParagraphBullets(
        new CreateParagraphBulletsRequest()
                .setRange(new Range()
                        .setStartIndex(1)
                        .setEndIndex(22)
                        .setTabId(TAB_ID))
                .setBulletPreset("NUMBERED_DECIMAL_ALPHA_ROMAN")));

BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests);
docsService.documents().batchUpdate(documentId, body).execute();

System.out.println("Created document with ID: " + documentId);

Python

title = 'New List Document'
body = {'title': title}
doc = service.documents().create(body=body).execute()
document_id = doc.get('documentId')

requests = [
    {
        'insertText': {
            'location': {
                'index': 1,
                'tabId': TAB_ID
            },
            'text': 'Item 1\nItem 2\nItem 3\n'
        }
    },
    {
        'createParagraphBullets': {
            'range': {
                'startIndex': 1,
                'endIndex': 22,
                'tabId': TAB_ID
            },
            'bulletPreset': 'NUMBERED_DECIMAL_ALPHA_ROMAN'
        }
    }
]

result = service.documents().batchUpdate(
    documentId=document_id, body={'requests': requests}).execute()

print(f"Created document with ID: {document_id}")

แทนที่ TAB_ID ด้วยรหัสของ แท็บ ที่มีเนื้อหารายการ

แปลงย่อหน้าเป็นรายการ

การดำเนินการจัดรูปแบบย่อหน้าทั่วไปคือการแปลงย่อหน้าที่มีอยู่เป็น รายการที่มีหัวข้อย่อย

หากต้องการสร้างรายการ ให้ใช้วิธี documents.batchUpdate และระบุ CreateParagraphBulletsRequest ใส่ Range เพื่อ ระบุข้อความที่ได้รับผลกระทบและ BulletGlyphPreset เพื่อกำหนดรูปแบบสำหรับหัวข้อย่อย

ย่อหน้าทั้งหมดที่ทับซ้อนกับช่วงที่ระบุจะมีสัญลักษณ์แสดงหัวข้อย่อย หากช่วงที่ระบุทับซ้อนกับตาราง ระบบจะใช้หัวข้อย่อยภายในเซลล์ของตาราง ระดับการซ้อนของแต่ละย่อหน้าจะกำหนดโดยการนับแท็บนำหน้า ของแต่ละย่อหน้า

คุณปรับระดับการซ้อนของหัวข้อย่อยที่มีอยู่ไม่ได้ แต่คุณต้อง ลบหัวข้อย่อย ตั้งค่าแท็บนำหน้าย่อหน้า แล้ว สร้างหัวข้อย่อยอีกครั้ง ดูข้อมูลเพิ่มเติมได้ที่นำสัญลักษณ์แสดงหัวข้อย่อยออกจาก รายการ

นอกจากนี้ คุณยังใช้ CreateParagraphBulletsRequest เพื่อเปลี่ยนรูปแบบหัวข้อย่อยสำหรับรายการที่มีอยู่ได้ด้วย

ตัวอย่างโค้ดต่อไปนี้แสดงคำขอแบบกลุ่มที่แทรกข้อความที่ จุดเริ่มต้นของเอกสารก่อน จากนั้นจะสร้างรายการจากย่อหน้าที่ครอบคลุม อักขระ 50 ตัวแรก BulletGlyphPreset ใช้ BULLET_ARROW_DIAMOND_DISC ซึ่งหมายความว่าระดับการซ้อน 3 ระดับแรกของ รายการแบบมีหัวข้อย่อยจะแสดงด้วยลูกศร เพชร และวงกลม

Java

List<Request> requests = new ArrayList<>();
requests.add(new Request().setInsertText(new InsertTextRequest()
        .setText("Item One\n")
        .setLocation(new Location().setIndex(1).setTabId(TAB_ID))));

requests.add(new Request().setCreateParagraphBullets(
        new CreateParagraphBulletsRequest()
                .setRange(new Range()
                        .setStartIndex(1)
                        .setEndIndex(50)
                        .setTabId(TAB_ID))
                .setBulletPreset("BULLET_ARROW_DIAMOND_DISC")));

BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests);
BatchUpdateDocumentResponse response = docsService.documents()
        .batchUpdate(DOCUMENT_ID, body).execute();

Python

requests = [
        {
        'insertText': {
            'location': {
                'index': 1,
                'tabId': TAB_ID
            },
            'text': 'Item One\n',
        }}, {
        'createParagraphBullets': {
            'range': {
                'startIndex': 1,
                'endIndex':  50,
                'tabId': TAB_ID
            },
            'bulletPreset': 'BULLET_ARROW_DIAMOND_DISC',
        }
    }
]

result = service.documents().batchUpdate(
    documentId=DOCUMENT_ID, body={'requests': requests}).execute()

แทนที่ TAB_ID ด้วยรหัสของ แท็บ ที่มีเนื้อหารายการ หรือละเว้นเพื่อใช้แท็บแรกในเอกสารเป็นค่าเริ่มต้น

แปลงย่อหน้าเป็นรายการ
รูปที่ 1 แปลงย่อหน้าเป็นรายการ

นำสัญลักษณ์แสดงหัวข้อย่อยออกจากรายการ

หากต้องการนำหัวข้อย่อยออกจากรายการย่อหน้า ให้ใช้วิธี documents.batchUpdate และระบุ DeleteParagraphBulletsRequest ใส่ Range เพื่อ ระบุข้อความที่ได้รับผลกระทบ

เมธอดนี้จะลบหัวข้อย่อยทั้งหมดที่ทับซ้อนกับช่วงที่ระบุ ไม่ว่าจะมีระดับการซ้อนเท่าใดก็ตาม ระบบจะเพิ่มการเยื้องที่จุดเริ่มต้นของแต่ละย่อหน้าเพื่อให้เห็นระดับการซ้อนกัน

ตัวอย่างโค้ดต่อไปนี้แสดงคำขอแบบกลุ่มที่ลบหัวข้อย่อยออกจาก รายการย่อหน้า

Java

List<Request> requests = new ArrayList<>();
requests.add(new Request().setDeleteParagraphBullets(
        new DeleteParagraphBulletsRequest()
                .setRange(new Range()
                        .setStartIndex(1)
                        .setEndIndex(50)
                        .setTabId(TAB_ID))));

BatchUpdateDocumentRequest body = new BatchUpdateDocumentRequest().setRequests(requests);
BatchUpdateDocumentResponse response = docsService.documents()
        .batchUpdate(DOCUMENT_ID, body).execute();

Python

requests = [
        {
        'deleteParagraphBullets': {
            'range': {
                'startIndex': 1,
                'endIndex':  50,
                'tabId': TAB_ID
            },
        }
    }
]

result = service.documents().batchUpdate(
    documentId=DOCUMENT_ID, body={'requests': requests}).execute()

แทนที่ TAB_ID ด้วยรหัสของ แท็บ ที่มีเนื้อหารายการ หรือละเว้นเพื่อใช้แท็บแรกในเอกสารเป็นค่าเริ่มต้น