Tạo bảng tính
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Trang này mô tả cách tạo bảng tính.
Ví dụ:
Để tạo bảng tính, hãy sử dụng phương thức create trên tập hợp spreadsheets, như minh hoạ trong ví dụ sau.
Ví dụ này tạo một bảng tính trống có tiêu đề được chỉ định.
Làm việc với thư mục trên Google Drive
Không có lựa chọn nào để tạo bảng tính ngay trong một thư mục Drive cụ thể bằng cách sử dụng API Trang tính. Theo mặc định, bảng tính được tạo sẽ được lưu vào thư mục gốc của người dùng trên Drive.
Tuy nhiên, có 2 cách khác để lưu tệp vào một thư mục trên Drive:
- Sau khi tạo bảng tính, hãy di chuyển bảng tính đó đến một thư mục cụ thể bằng phương thức files.update của Drive API. Để biết thêm thông tin về cách di chuyển tệp, hãy tham khảo bài viết Di chuyển tệp giữa các thư mục.
- Thêm một bảng tính trống vào một thư mục bằng phương thức files.create của Drive API, chỉ định
application/vnd.google-apps.spreadsheet
làm mimeType
. Để biết thêm thông tin về cách tạo tệp, hãy tham khảo bài viết Tạo tệp trong thư mục.
Đối với cả hai lựa chọn thay thế, bạn cần thêm các phạm vi Drive API thích hợp để uỷ quyền cho lệnh gọi.
Để di chuyển hoặc tạo tệp trong một thư mục của bộ nhớ dùng chung, hãy tham khảo phần Triển khai tính năng hỗ trợ bộ nhớ dùng chung.
Để tìm hiểu thêm về giới hạn số ô và hàng trong Google Trang tính, hãy xem bài viết Các tệp bạn có thể lưu trữ trong Google Drive.
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2025-08-29 UTC.
[null,null,["Cập nhật lần gần đây nhất: 2025-08-29 UTC."],[],[],null,["# Create a spreadsheet\n\nThis page describes how to create a spreadsheet.\n\nExample\n-------\n\nTo create a spreadsheet, use the [create](/workspace/sheets/api/reference/rest/v4/spreadsheets/create)\nmethod on the [spreadsheets](/workspace/sheets/api/reference/rest/v4/spreadsheets) collection, as shown in the following example.\n\nThis example creates a blank spreadsheet with a specified title. \n\n### Apps Script\n\nsheets/api/spreadsheet_snippets.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/sheets/api/spreadsheet_snippets.gs) \n\n```javascript\n/**\n * Creates a new sheet using the sheets advanced services\n * @param {string} title the name of the sheet to be created\n * @returns {string} the spreadsheet ID\n */\nSnippets.prototype.create = (title) =\u003e {\n // This code uses the Sheets Advanced Service, but for most use cases\n // the built-in method SpreadsheetApp.create() is more appropriate.\n try {\n let sheet = Sheets.newSpreadsheet();\n sheet.properties = Sheets.newSpreadsheetProperties();\n sheet.properties.title = title;\n const spreadsheet = Sheets.Spreadsheets.create(sheet);\n\n return spreadsheet.spreadsheetId;\n } catch (err) {\n // TODO (developer) - Handle exception\n console.log('Failed with error %s', err.message);\n }\n};\n```\n\n### Java\n\nsheets/snippets/src/main/java/Create.java \n[View on GitHub](https://github.com/googleworkspace/java-samples/blob/main/sheets/snippets/src/main/java/Create.java) \n\n```java\nimport com.google.api.client.http.HttpRequestInitializer;\nimport com.google.api.client.http.javanet.NetHttpTransport;\nimport com.google.api.client.json.gson.GsonFactory;\nimport com.google.api.services.sheets.v4.Sheets;\nimport com.google.api.services.sheets.v4.SheetsScopes;\nimport com.google.api.services.sheets.v4.model.Spreadsheet;\nimport com.google.api.services.sheets.v4.model.SpreadsheetProperties;\nimport com.google.auth.http.HttpCredentialsAdapter;\nimport com.google.auth.oauth2.GoogleCredentials;\nimport java.io.IOException;\nimport java.util.Collections;\n\n/* Class to demonstrate the use of Spreadsheet Create API */\npublic class Create {\n /**\n * Create a new spreadsheet.\n *\n * @param title - the name of the sheet to be created.\n * @return newly created spreadsheet id\n * @throws IOException - if credentials file not found.\n */\n public static String createSpreadsheet(String title) throws IOException {\n /* Load pre-authorized user credentials from the environment.\n TODO(developer) - See https://developers.google.com/identity for\n guides on implementing OAuth2 for your application. */\n GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()\n .createScoped(Collections.singleton(SheetsScopes.SPREADSHEETS));\n HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(\n credentials);\n\n // Create the sheets API client\n Sheets service = new Sheets.Builder(new NetHttpTransport(),\n GsonFactory.getDefaultInstance(),\n requestInitializer)\n .setApplicationName(\"Sheets samples\")\n .build();\n\n // Create new spreadsheet with a title\n Spreadsheet spreadsheet = new Spreadsheet()\n .setProperties(new SpreadsheetProperties()\n .setTitle(title));\n spreadsheet = service.spreadsheets().create(spreadsheet)\n .setFields(\"spreadsheetId\")\n .execute();\n // Prints the new spreadsheet id\n System.out.println(\"Spreadsheet ID: \" + spreadsheet.getSpreadsheetId());\n return spreadsheet.getSpreadsheetId();\n }\n}\n```\n\n### JavaScript\n\nsheets/snippets/sheets_create.js \n[View on GitHub](https://github.com/googleworkspace/browser-samples/blob/main/sheets/snippets/sheets_create.js) \n\n```javascript\nfunction create(title, callback) {\n try {\n gapi.client.sheets.spreadsheets.create({\n properties: {\n title: title,\n },\n }).then((response) =\u003e {\n if (callback) callback(response);\n console.log('Spreadsheet ID: ' + response.result.spreadsheetId);\n });\n } catch (err) {\n document.getElementById('content').innerText = err.message;\n return;\n }\n}\n```\n\n### Node.js\n\nsheets/snippets/sheets_create.js \n[View on GitHub](https://github.com/googleworkspace/node-samples/blob/main/sheets/snippets/sheets_create.js) \n\n```javascript\n/**\n * Create a google spreadsheet\n * @param {string} title Spreadsheets title\n * @return {string} Created spreadsheets ID\n */\nasync function create(title) {\n const {GoogleAuth} = require('google-auth-library');\n const {google} = require('googleapis');\n\n const auth = new GoogleAuth({\n scopes: 'https://www.googleapis.com/auth/spreadsheets',\n });\n\n const service = google.sheets({version: 'v4', auth});\n const resource = {\n properties: {\n title,\n },\n };\n try {\n const spreadsheet = await service.spreadsheets.create({\n resource,\n fields: 'spreadsheetId',\n });\n console.log(`Spreadsheet ID: ${spreadsheet.data.spreadsheetId}`);\n return spreadsheet.data.spreadsheetId;\n } catch (err) {\n // TODO (developer) - Handle exception\n throw err;\n }\n}\n```\n\n### PHP\n\nsheets/snippets/src/SpreadsheetCreate.php \n[View on GitHub](https://github.com/googleworkspace/php-samples/blob/main/sheets/snippets/src/SpreadsheetCreate.php) \n\n```php\n\u003c?php\nuse Google\\Client;\nuse Google\\Service\\Drive;\nuse Google\\Service\\Sheets\\SpreadSheet;\n\n/**\n* create an empty spreadsheet\n* \n*/\n\n function create($title)\n { \n /* Load pre-authorized user credentials from the environment.\n TODO(developer) - See https://developers.google.com/identity for\n guides on implementing OAuth2 for your application. */\n $client = new Google\\Client();\n $client-\u003euseApplicationDefaultCredentials();\n $client-\u003eaddScope(Google\\Service\\Drive::DRIVE);\n $service = new Google_Service_Sheets($client);\n try{\n\n $spreadsheet = new Google_Service_Sheets_Spreadsheet([\n 'properties' =\u003e [\n 'title' =\u003e $title\n ]\n ]);\n $spreadsheet = $service-\u003espreadsheets-\u003ecreate($spreadsheet, [\n 'fields' =\u003e 'spreadsheetId'\n ]);\n printf(\"Spreadsheet ID: %s\\n\", $spreadsheet-\u003espreadsheetId);\n return $spreadsheet-\u003espreadsheetId;\n }\n catch(Exception $e) {\n // TODO(developer) - handle error appropriately\n echo 'Message: ' .$e-\u003egetMessage();\n }\n }\n```\n\n### Python\n\nsheets/snippets/sheets_create.py \n[View on GitHub](https://github.com/googleworkspace/python-samples/blob/main/sheets/snippets/sheets_create.py) \n\n```python\nimport google.auth\nfrom googleapiclient.discovery import build\nfrom googleapiclient.errors import HttpError\n\n\ndef create(title):\n \"\"\"\n Creates the Sheet the user has access to.\n Load pre-authorized user credentials from the environment.\n TODO(developer) - See https://developers.google.com/identity\n for guides on implementing OAuth2 for the application.\n \"\"\"\n creds, _ = google.auth.default()\n # pylint: disable=maybe-no-member\n try:\n service = build(\"sheets\", \"v4\", credentials=creds)\n spreadsheet = {\"properties\": {\"title\": title}}\n spreadsheet = (\n service.spreadsheets()\n .create(body=spreadsheet, fields=\"spreadsheetId\")\n .execute()\n )\n print(f\"Spreadsheet ID: {(spreadsheet.get('spreadsheetId'))}\")\n return spreadsheet.get(\"spreadsheetId\")\n except HttpError as error:\n print(f\"An error occurred: {error}\")\n return error\n\n\nif __name__ == \"__main__\":\n # Pass: title\n create(\"mysheet1\")\n```\n\n### Ruby\n\nsheets/snippets/lib/spreadsheet_snippets.rb \n[View on GitHub](https://github.com/googleworkspace/ruby-samples/blob/main/sheets/snippets/lib/spreadsheet_snippets.rb) \n\n```ruby\nspreadsheet = {\n properties: {\n title: 'Sales Report'\n }\n}\nspreadsheet = service.create_spreadsheet(spreadsheet,\n fields: 'spreadsheetId')\nputs \"Spreadsheet ID: #{spreadsheet.spreadsheet_id}\"\n```\n\n### Work with Google Drive folders\n\nThere's no option to create a spreadsheet directly within a specified Drive folder using the Sheets API. By default, the created spreadsheet is saved to the user's root folder on Drive.\n\nHowever, there are 2 alternatives to saving a file to a Drive folder:\n\n- After the spreadsheet is created, move it to a specific folder using the [files.update](/drive/api/v3/reference/files/update) method of the Drive API. For more information on moving files, refer to [Move files between folders](/drive/api/guides/folder#move_files_between_folders).\n- Add a blank spreadsheet to a folder using the [files.create](/drive/v3/reference/files/create) method of the Drive API, specifying `application/vnd.google-apps.spreadsheet` as the `mimeType`. For more information on creating files, refer to [Create a file in a folder](/drive/api/guides/folder#create_a_file_in_a_folder).\n\nFor either alternative, you'll need to add the appropriate [Drive\nAPI scopes](/drive/api/v3/reference/files/create#auth) to authorize the call.\n\nTo move or create a file within a shared drive folder, refer to [Implement shared drive support](/drive/api/guides/enable-shareddrives).\n\nTo learn more about cell and row limits in Google Sheets, see [Files you can store in Google Drive](https://support.google.com/drive/answer/37603)."]]