أكواد Excel و Google Sheets، أتمتة البيانات
أكواد Python وGoogle Apps Script لأتمتة Excel وSheets: قراءة، تحليل، توليد تقارير، دمج مع AI.
Excel وGoogle Sheets أدوات كل مهنيّ. أتمتتها توفّر ساعات. هذه أكواد جاهزة.
Python + Excel (openpyxl)
قراءة Excel
from openpyxl import load_workbook
wb = load_workbook("sales.xlsx")
sheet = wb["Q3"]
# قراءة خلية
value = sheet["A1"].value
# قراءة نطاق
for row in sheet["A2:D10"]:
for cell in row:
print(cell.value)
# قراءة كل الصفوف
for row in sheet.iter_rows(min_row=2, values_only=True):
print(row) # tuple of values
كتابة Excel
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill
wb = Workbook()
sheet = wb.active
sheet.title = "التقرير"
# رأس الجدول
headers = ["الاسم", "المبلغ", "التاريخ"]
sheet.append(headers)
# تنسيق الرأس
for col in range(1, 4):
cell = sheet.cell(row=1, column=col)
cell.font = Font(bold=True, color="FFFFFF")
cell.fill = PatternFill("solid", fgColor="1F4E78")
# البيانات
data = [
("أحمد", 5000, "2026-09-01"),
("سارة", 3200, "2026-09-02"),
]
for row in data:
sheet.append(row)
# حفظ
wb.save("report.xlsx")
Formulas
sheet["E1"] = "الإجمالي"
sheet["E2"] = "=SUM(B2:B10)"
sheet["E3"] = "=AVERAGE(B2:B10)"
sheet["E4"] = "=MAX(B2:B10)"
Python + Excel (pandas، أقوى)
قراءة كل sheet
import pandas as pd
# sheet واحد
df = pd.read_excel("sales.xlsx", sheet_name="Q3")
# كل الـsheets
all_sheets = pd.read_excel("sales.xlsx", sheet_name=None)
for name, df in all_sheets.items():
print(f"{name}: {len(df)} صفوف")
تحليل سريع
# إحصاءات
print(df.describe())
# فلترة
top_customers = df[df["amount"] > 10000].sort_values("amount", ascending=False)
# تجميع
by_region = df.groupby("region").agg({
"amount": ["sum", "mean", "count"],
"customer_id": "nunique"
})
# Pivot Table
pivot = df.pivot_table(
index="region",
columns="product",
values="amount",
aggfunc="sum"
)
كتابة متعدّد Sheets
with pd.ExcelWriter("report.xlsx", engine="openpyxl") as writer:
top_customers.to_excel(writer, sheet_name="أفضل العملاء", index=False)
by_region.to_excel(writer, sheet_name="حسب المنطقة")
pivot.to_excel(writer, sheet_name="جدول محوري")
Python + Google Sheets (gspread)
الإعداد
- أنشئ Service Account في Google Cloud Console
- حمّل credentials.json
- شارك الـSheet مع email الـService Account
import gspread
from google.oauth2.service_account import Credentials
scopes = ["https://www.googleapis.com/auth/spreadsheets"]
creds = Credentials.from_service_account_file("credentials.json", scopes=scopes)
gc = gspread.authorize(creds)
# افتح Sheet
sheet = gc.open("my-sheet").sheet1
# قراءة
all_values = sheet.get_all_values()
records = sheet.get_all_records() # كـdict
# كتابة
sheet.update("A1", [["الاسم", "المبلغ"]])
sheet.append_row(["أحمد", 5000])
# تحديث خلية واحدة
sheet.update_cell(2, 3, "قيمة جديدة")
Google Apps Script (داخل Sheets)
Apps Script يعمل داخل Sheets نفسه (Extensions → Apps Script).
تنسيق تلقائي
function formatSheet() {
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange("A1:E1");
range.setFontWeight("bold");
range.setBackground("#1F4E78");
range.setFontColor("#FFFFFF");
sheet.autoResizeColumns(1, 5);
}
توليد تقرير أسبوعي
function weeklyReport() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
const data = sheet.getDataRange().getValues();
const lastWeek = new Date();
lastWeek.setDate(lastWeek.getDate() - 7);
const recent = data.filter(row => new Date(row[0]) >= lastWeek);
const total = recent.reduce((sum, row) => sum + row[2], 0);
// إرسال إيميل
MailApp.sendEmail({
to: "you@example.com",
subject: "تقرير الأسبوع",
body: `إجمالي هذا الأسبوع: ${total} ريال\nعدد المعاملات: ${recent.length}`
});
}
تشغيل تلقائي (Trigger)
في Apps Script: Triggers → Add Trigger → weeklyReport → Time-driven → Weekly.
دمج مع OpenAI في Sheets
function askGPT(prompt) {
const url = "https://api.openai.com/v1/chat/completions";
const payload = {
model: "gpt-5-mini",
messages: [{role: "user", content: prompt}]
};
const response = UrlFetchApp.fetch(url, {
method: "post",
contentType: "application/json",
headers: {"Authorization": "Bearer YOUR_API_KEY"},
payload: JSON.stringify(payload)
});
return JSON.parse(response.getContentText()).choices[0].message.content;
}
// استخدم داخل خلية Sheets: =askGPT("لخّص هذا النصّ: " & A1)
دمج AI مع Excel
تلخيص عمود نصوص
import pandas as pd
from openai import OpenAI
client = OpenAI(api_key="sk-...")
def summarize_text(text: str) -> str:
response = client.chat.completions.create(
model="gpt-5-mini",
messages=[
{"role": "system", "content": "لخّص في جملة واحدة."},
{"role": "user", "content": text}
]
)
return response.choices[0].message.content
df = pd.read_excel("reviews.xlsx")
df["summary"] = df["review_text"].apply(summarize_text)
df.to_excel("reviews_summarized.xlsx", index=False)
تصنيف مشاعر
def classify_sentiment(text: str) -> str:
response = client.chat.completions.create(
model="gpt-5-mini",
messages=[
{"role": "system", "content": "صنّف: positive / negative / neutral. الجواب فقط."},
{"role": "user", "content": text}
]
)
return response.choices[0].message.content.strip()
df["sentiment"] = df["review"].apply(classify_sentiment)
أمثلة عملية سعودية
توليد فواتير من CSV
import pandas as pd
from openpyxl import Workbook
from datetime import datetime
customers = pd.read_csv("orders.csv")
for _, row in customers.iterrows():
wb = Workbook()
ws = wb.active
ws["A1"] = "فاتورة"
ws["A3"] = f"العميل: {row['name']}"
ws["A4"] = f"التاريخ: {datetime.now().strftime('%Y-%m-%d')}"
ws["A5"] = f"المبلغ: {row['amount']} ريال"
ws["A6"] = f"ضريبة القيمة المضافة (15%): {row['amount'] * 0.15}"
ws["A7"] = f"الإجمالي: {row['amount'] * 1.15}"
wb.save(f"invoices/invoice_{row['order_id']}.xlsx")
تقرير موحّد من عدّة ملفّات
import pandas as pd
from pathlib import Path
dfs = []
for file in Path("branches/").glob("*.xlsx"):
df = pd.read_excel(file)
df["branch"] = file.stem
dfs.append(df)
combined = pd.concat(dfs, ignore_index=True)
combined.to_excel("all_branches.xlsx", index=False)
summary = combined.groupby("branch")["sales"].agg(["sum", "mean", "count"])
summary.to_excel("summary.xlsx")
نصائح ذهبية
- pandas أقوى من openpyxl، للتحليل
- openpyxl أفضل للتنسيقات، الألوان، الحدود
- gspread للسحابة، تكامل مع Google
- Apps Script للأتمتة داخل Sheets، بلا خادم خارجي
- AI + Sheets، قوّة قاتلة، حذر بالتكاليف
المصادر الرسمية
اقرأ أيضاً: أفضل ١٠ أكواد Python · أكواد أتمتة يومية · Web Scraping، دليل · OpenAI API، دليل البدء
هل أفادك هذا المقال؟
الأسئلة الشائعة
مقالات ذات صلة
الذكاء الاصطناعي العام (AGI): هل قريب؟ الجدل الكامل
شرح لجدل AGI، ما هو تعريفه الحقيقي، آراء Sam Altman و Demis Hassabis و Yann LeCun و Gary Marcus، الاختبارات المقترحة، والتوقّعات الواقعية للوصول إليه.
AGI و Superintelligence، النقاش الحقيقي بلا خيال
شرح تفصيلي للذكاء العام (AGI) والذكاء الفائق (ASI): التعاريف، المتفائلون، المتحفّظون، ماذا يعني للحياة اليومية.
مصنّعو رقائق الذكاء الاصطناعي، NVIDIA، AMD، TSMC، Intel
دليل لصناعة رقائق AI: NVIDIA، AMD، Intel، Broadcom، TSMC، Samsung، الحصص، الحرب الجيوسياسية، والسعودية.
نشرة مقالات الأسبوعية
اشترك تصلك أحدث المقالات + مختارات نادرة كل أحد. بلا سبام، ألغي الاشتراك بضغطة.
لا نشارك بريدك مع أي طرف ثالث. راجع سياسة الخصوصية.