با لیست ها کار کنید، با لیست ها کار کنید

رابط برنامه‌نویسی کاربردی گوگل داکس (Google Docs API) از تبدیل پاراگراف‌های ساده به لیست‌های بولت‌دار و حذف بولت‌ها از پاراگراف‌ها پشتیبانی می‌کند.

تبدیل پاراگراف به لیست

یک عملیات قالب‌بندی پاراگراف رایج، تبدیل پاراگراف‌ها به یک لیست بولت‌دار است.

برای ایجاد یک لیست، از متد documents.batchUpdate استفاده کنید و یک CreateParagraphBulletsRequest ارائه دهید. یک Range برای مشخص کردن سلول‌های تحت تأثیر و یک BulletGlyphPreset برای تنظیم الگو برای bullet اضافه کنید.

تمام پاراگراف‌هایی که با محدوده‌ی داده شده همپوشانی دارند، علامت‌گذاری می‌شوند. اگر محدوده‌ی مشخص شده با یک جدول همپوشانی داشته باشد، علامت‌گذاری‌ها درون سلول‌های جدول اعمال می‌شوند. سطح تودرتوی هر پاراگراف با شمارش تب‌های ابتدای هر پاراگراف تعیین می‌شود.

شما نمی‌توانید سطح تودرتوی یک بولت موجود را تنظیم کنید. در عوض، باید بولت را حذف کنید، زبانه‌های اصلی را در جلوی پاراگراف تنظیم کنید و سپس دوباره بولت را ایجاد کنید. برای اطلاعات بیشتر، به حذف بولت‌ها از لیست مراجعه کنید.

همچنین می‌توانید CreateParagraphBulletsRequest برای تغییر سبک گلوله برای یک لیست موجود استفاده کنید.

نمونه کد زیر یک درخواست دسته‌ای را نشان می‌دهد که ابتدا متن را در ابتدای سند وارد می‌کند و سپس لیستی از پاراگراف‌ها که شامل ۵۰ کاراکتر اول است، ایجاد می‌کند. BulletGlyphPreset از BULLET_ARROW_DIAMOND_DISC استفاده می‌کند، به این معنی که سه سطح تودرتوی اول لیست گلوله‌ای با یک فلش، یک لوزی و یک دیسک نمایش داده می‌شوند.

جاوا

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();

پایتون

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()
تبدیل یک پاراگراف به لیست
شکل ۱. تبدیل یک پاراگراف به یک لیست.

حذف بولت‌ها از یک لیست

برای حذف بولت‌ها از لیست پاراگراف، از متد documents.batchUpdate استفاده کنید و یک DeleteParagraphBulletsRequest ارائه دهید. یک Range برای مشخص کردن سلول‌های آسیب‌دیده اضافه کنید.

این روش تمام بولت‌هایی را که با محدوده داده شده همپوشانی دارند، صرف نظر از سطح تودرتو، حذف می‌کند. برای حفظ بصری سطح تودرتو، به ابتدای هر پاراگراف مربوطه تورفتگی اضافه می‌شود.

نمونه کد زیر یک درخواست دسته‌ای را نشان می‌دهد که بولت‌ها را از لیست پاراگراف حذف می‌کند.

جاوا

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();

پایتون

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

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