[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-1859a999-6a73-4c6d-8032-85f2d1fb90d0":3,"$frn2NI3wjKHgViLRdC1aqYyYZsOs5EHkGt_U4xf17znE":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"1859a999-6a73-4c6d-8032-85f2d1fb90d0","google-sheets-automation","轻量级Google Sheets集成，独立OAuth身份验证。无需MCP服务器。完全读写访问。","cat_prod_automation","mod_productivity","sickn33,productivity","---\nname: google-sheets-automation\ndescription: \"Lightweight Google Sheets integration with standalone OAuth authentication. No MCP server required. Full read\u002Fwrite access.\"\nrisk: critical\nsource: community\nlicense: Apache-2.0\nmetadata:\n  author: sanjay3290\n  version: \"1.0\"\n---\n\n# Google Sheets\n\nLightweight Google Sheets integration with standalone OAuth authentication. No MCP server required. Full read\u002Fwrite access.\n\n> **Requires Google Workspace account.** Personal Gmail accounts are not supported.\n\n## First-Time Setup\n\nAuthenticate with Google (opens browser):\n```bash\npython scripts\u002Fauth.py login\n```\n\nCheck authentication status:\n```bash\npython scripts\u002Fauth.py status\n```\n\nLogout when needed:\n```bash\npython scripts\u002Fauth.py logout\n```\n\n## Read Commands\n\nAll operations via `scripts\u002Fsheets.py`. Auto-authenticates on first use if not logged in.\n\n```bash\n# Get spreadsheet content as plain text (default)\npython scripts\u002Fsheets.py get-text SPREADSHEET_ID\n\n# Get spreadsheet content as CSV\npython scripts\u002Fsheets.py get-text SPREADSHEET_ID --format csv\n\n# Get spreadsheet content as JSON\npython scripts\u002Fsheets.py get-text SPREADSHEET_ID --format json\n\n# Get values from a specific range (A1 notation)\npython scripts\u002Fsheets.py get-range SPREADSHEET_ID \"Sheet1!A1:D10\"\npython scripts\u002Fsheets.py get-range SPREADSHEET_ID \"A1:C5\"\n\n# Find spreadsheets by search query\npython scripts\u002Fsheets.py find \"budget 2024\"\npython scripts\u002Fsheets.py find \"sales report\" --limit 5\n\n# Get spreadsheet metadata (sheets, dimensions, etc.)\npython scripts\u002Fsheets.py get-metadata SPREADSHEET_ID\n```\n\n## Write Commands\n\n```bash\n# Update a range of cells with values (JSON 2D array)\npython scripts\u002Fsheets.py update-range SPREADSHEET_ID \"Sheet1!A1:B2\" '[[\"Hello\",\"World\"],[\"Foo\",\"Bar\"]]'\n\n# Update with RAW input (no formula parsing, treats everything as literal text)\npython scripts\u002Fsheets.py update-range SPREADSHEET_ID \"Sheet1!A1:B1\" '[[\"=SUM(A1:A5)\",\"text\"]]' --raw\n\n# Append rows after the last data row\npython scripts\u002Fsheets.py append-rows SPREADSHEET_ID \"Sheet1!A:Z\" '[[\"New Row Col A\",\"New Row Col B\"]]'\n\n# Clear values from a range (keeps formatting)\npython scripts\u002Fsheets.py clear-range SPREADSHEET_ID \"Sheet1!A1:B10\"\n\n# Batch update (advanced - for formatting, merging, etc.)\npython scripts\u002Fsheets.py batch-update SPREADSHEET_ID '[{\"updateCells\":{\"range\":{\"sheetId\":0},\"fields\":\"userEnteredValue\"}}]'\n```\n\n## Spreadsheet ID\n\nYou can use either:\n- The spreadsheet ID: `1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms`\n- The full URL: `https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002Fd\u002F1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms\u002Fedit`\n\nThe script automatically extracts the ID from URLs.\n\n## Output Formats\n\n### Text (default)\nHuman-readable format with pipe separators:\n```\nSpreadsheet Title: Sales Data\nSheet Name: Q1\nName | Revenue | Units\nProduct A | 10000 | 50\nProduct B | 15000 | 75\n```\n\n### CSV\nStandard CSV format, suitable for further processing:\n```\nName,Revenue,Units\nProduct A,10000,50\nProduct B,15000,75\n```\n\n### JSON\nStructured data format:\n```json\n{\n  \"Q1\": [\n    [\"Name\", \"Revenue\", \"Units\"],\n    [\"Product A\", \"10000\", \"50\"]\n  ]\n}\n```\n\n## A1 Notation Examples\n\n- `Sheet1!A1:B10` - Range A1 to B10 on Sheet1\n- `Sheet1!A:A` - All of column A on Sheet1\n- `Sheet1!1:1` - All of row 1 on Sheet1\n- `A1:C5` - Range on the first sheet\n\n## Value Input Options\n\n- **USER_ENTERED** (default): Values are parsed as if typed by a user. Numbers, dates, and formulas are interpreted.\n- **RAW** (`--raw` flag): Values are stored exactly as provided. No parsing of formulas or number formatting.\n\n## Token Management\n\nTokens stored securely using the system keyring:\n- **macOS**: Keychain\n- **Windows**: Windows Credential Locker\n- **Linux**: Secret Service API (GNOME Keyring, KDE Wallet, etc.)\n\nService name: `google-sheets-skill-oauth`\n\nTokens automatically refresh when expired using Google's cloud function.\n\n\n## When to Use\nUse this skill when tackling tasks related to its primary domain or functionality as described above.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,88,243,"2026-05-16 13:21:13",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"效率工具","productivity","mdi-lightning-bolt-outline","文档处理、数据分析、自动化工作流",4,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"自动化","automation","mdi-robot-outline","工作流自动化、批处理",3,101,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"4a5bee60-015b-438b-a042-3f9d0492ebad","1.0.0","google-sheets-automation.zip",2007,"uploads\u002Fskills\u002F1859a999-6a73-4c6d-8032-85f2d1fb90d0\u002Fgoogle-sheets-automation.zip","3cdd4859c0c154f5467b1da7627fe1ab39a384f3b6560ffc238914555129e80f","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":4325}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]