Listelerle çalışma

Google Dokümanlar API'si, yeni dokümanlarda liste oluşturmayı, mevcut düz paragrafları madde işaretli listelere dönüştürmeyi ve paragraflardan madde işaretlerini kaldırmayı destekler.

Yeni bir dokümanda numaralı liste oluşturma

Docs API, metin ekleyip tek bir toplu istekte metne liste stili uygulayarak yeni bir dokümanda numaralı liste oluşturmayı destekler.

Yeni bir dokümanda numaralandırılmış liste oluşturmak için:

  1. Doküman oluşturmak için documents.create yöntemini kullanın.

  2. documents.batchUpdate yöntemini kullanın ve dokümana içerik eklemek için InsertTextRequest sağlayın. Liste öğelerini ayırmak için yeni satır karakterleri (\n) kullanın.

  3. Aynı toplu güncellemede, metin aralığını belirtmek için CreateParagraphBulletsRequest, Range ve numaralandırma kalıbını ayarlamak için BulletGlyphPreset karakterini ekleyin.

Aşağıdaki kod örneğinde, nasıl belge oluşturulacağı ve ardından üç öğenin numaralı liste olarak nasıl ekleneceği gösterilmektedir. BulletGlyphPreset, listeyi biçimlendirmek için NUMBERED_DECIMAL_ALPHA_ROMAN kullanır. Bu, numaralı listenin ilk üç iç içe yerleştirme düzeyinin ondalık sayı, küçük harf ve küçük harf Romen rakamıyla gösterildiği anlamına gelir.

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 değerini, liste içeriğini içeren sekmenin kimliğiyle değiştirin.

Paragrafı listeye dönüştürme

Sık kullanılan bir paragraf biçimlendirme işlemi, mevcut paragrafları madde işaretli listeye dönüştürmektir.

Liste oluşturmak için documents.batchUpdate yöntemini kullanın ve CreateParagraphBulletsRequest sağlayın. Etkilenen metni belirtmek için Range, madde işaretinin kalıbını ayarlamak için BulletGlyphPreset ekleyin.

Belirtilen aralıkla çakışan tüm paragraflar madde işaretli hale getirilir. Belirtilen aralık bir tabloyla çakışıyorsa madde işaretleri tablo hücrelerine uygulanır. Her paragrafın iç içe yerleştirme düzeyi, her paragrafın önündeki baştaki sekmeler sayılarak belirlenir.

Mevcut bir madde işaretinin iç içe yerleştirme düzeyini ayarlayamazsınız. Bunun yerine madde işaretini silmeniz, paragrafın önüne girinti sekmeleri yerleştirmeniz ve ardından madde işaretini tekrar oluşturmanız gerekir. Daha fazla bilgi için Listeden madde işaretlerini kaldırma başlıklı makaleyi inceleyin.

Mevcut bir listenin madde işareti stilini değiştirmek için CreateParagraphBulletsRequest simgesini de kullanabilirsiniz.

Aşağıdaki kod örneğinde, önce belgenin başına metin ekleyen, ardından ilk 50 karakteri kapsayan paragraflardan bir liste oluşturan bir toplu istek gösterilmektedir. BulletGlyphPreset, BULLET_ARROW_DIAMOND_DISC kullanır. Bu, madde işaretli listenin ilk üç iç içe yerleştirme düzeyinin ok, elmas ve disk ile temsil edildiği anlamına gelir.

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 değerini, liste içeriğini içeren sekmenin kimliği ile değiştirin veya dokümandaki ilk sekmeye varsayılan olarak yönlendirmek için bu değeri atlayın.

Paragrafı listeye dönüştürme
Şekil 1. Paragrafı listeye dönüştürme

Listeden madde işaretlerini kaldırma

Paragraf listesinden madde işaretlerini kaldırmak için documents.batchUpdate yöntemini kullanın ve bir DeleteParagraphBulletsRequest sağlayın. Etkilenen metni belirtmek için Range ekleyin.

Bu yöntem, iç içe yerleştirme düzeyinden bağımsız olarak, belirtilen aralıkla çakışan tüm madde işaretlerini siler. İç içe yerleştirme düzeyini görsel olarak korumak için ilgili her paragrafın başına girinti eklenir.

Aşağıdaki kod örneğinde, bir paragraf listesinden madde işaretlerini silen bir toplu istek gösterilmektedir.

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 değerini, liste içeriğini içeren sekmenin kimliği ile değiştirin veya dokümandaki ilk sekmeye varsayılan olarak yönlendirmek için bu değeri atlayın.