مضى على الشبكة و يوم من العطاء.

سكربت لإستخراج اسم المستخدم والباسوورد لملف إكسل

  • بادئ الموضوع بادئ الموضوع Shanab
  • تاريخ البدء تاريخ البدء

Shanab

{ | مشرف قسم لغات البرمجة | }
.:: طاقم المشرفين ::.

السمعة:

السلام عليكم ورحمة الله وبركاته

أثناء قيامي بإحدى المهام كنت أواجه مشكلة في اسم المستخدم وكلمة السر الخاصة به حيث أن هذه الأسماء وكلمات السر عبارة عن مصفوفة كبيرة

وأحتاج إستخراج هذه الأسماء وكلمات السر لملف إكسل لكي استخدمها في البرنامج لإنهاء العمل.

هنا سوف نحتاج لبعض الكودنج (كتابة الأسطر البرمجية ) لفعل ذلك

حتى يتم ذلك نحتاج إلى التالي:
node js , npm , visual studio code
مُنصبات على الجهاز الذي تستخدمه

أولاً دعونا نُجزء المشكلة إلى أجزاء صغيرة وعلى ذلك نقوم بكتابة الكود
1 - حتى نستطيع الوصول إلى الداتا نحتاج بما يسمى (axios)
وهي مكتبة تساعدنا على القيام ب http request
JavaScript:
const axios = require('axios');

2 - نحتاج إلى التلاعب بملفات الجهاز لنستطيع خلق ملف جديد وهنا سوف نستخدم مكتبتين (fs ,fast-csv)
مكتبة fs هي إختصار ل file system وتسمح لنا بالتلاعب والوصول إلى ملفات الجهاز

مكتبة fast-csv مكتبة نستطيع من خلالها خلق ملف إكسل
JavaScript:
const fs = require('fs');
const csv = require('fast-csv');

3 - إنشاء اسم ملف وحفظه داخل متغير
JavaScript:
const outputFile = 'users.csv';

4 - طريقة كتابة الفنكشن function وما نحتاجه بالفعل يكمن هنا
سنقوم بتسميه الفنكشن ب fetchData او ما يناسبك وهو فنكشن لا يقوم بإرجاع شيء بما يعني أنه void
ثم لنتمكن من الوصول إلى المصفوفة ذات الأسماء وكلمات السر نحتاج الى request سوف نستدعي هنا مكتبة axios ونستخدم الميثود get

JavaScript:
        const response = await axios.get(apiUrl);
طبعاً خزنت الريكوست في متغير لنتمكن من الحصول على الداتا
ثم سنقوم باستخدام مكتبة fs واستخدام الميثود createWriteStream هذا الميثود يستقبل بارميتر وهو الملف الذي عرفناه بالمتغير قبل قليل طبعاً
وظيفة هذا الفنكشن هو خلق تيار حتى تصل الداتا إليه
JavaScript:
        const ws = fs.createWriteStream(outputFile);

ومن ثم سوف نستدعي مكتبة fast-csv لعمل فورمات
JavaScript:
        const csvStream = csv.format({ headers: true });
من ثم سنكتب على الهيدرز username , password
JavaScript:
        csvStream.write(['username', 'password']);
من ثم سنقوم بعمل لوب لكتابة كل اسم وكلمة السر الخاصة به على سطر واحد
JavaScript:
userData.forEach(user => {
            csvStream.write([user.username, user.password]);
        });
وهكذا نكون قد خلقنا في نفس الملف الذي تستخدم فيه الكود ملف إكسل يحتوي على الأسماء وكلمات السر

الكود كامل

JavaScript:
const axios = require('axios');
const fs = require('fs');
const csv = require('fast-csv');

const apiUrl = 'https://dummyjson.com/users';
const outputFile = 'dummy.csv';

async function fetchData() {
    try {
        const response = await axios.get(apiUrl);
        const userData = response.data.users;
        const ws = fs.createWriteStream(outputFile);
        const csvStream = csv.format({ headers: true });
        csvStream.pipe(ws);
        csvStream.write(['username', 'password']);
        userData.forEach(user => {
            csvStream.write([user.username, user.password]);
        });
        csvStream.end();
        console.log(`CSV file created successfully: ${outputFile}`);
    } catch (error) {
        console.error('Error fetching data:', error.message);
    }
}
fetchData();

صورة من ملف الإكسل
1704284271765.png

دمتم سالمين وفي أمان الله
 
التعديل الأخير بواسطة المشرف:
السلام عليكم ورحمة الله وبركاته

أثناء قيامي بإحدى المهام كنت أواجه مشكلة في اسم المستخدم وكلمة السر الخاصة به حيث أن هذه الأسماء وكلمات السر عبارة عن مصفوفة كبيرة

وأحتاج إستخراج هذه الأسماء وكلمات السر لملف اكسل لكي استخدمها في البرنامج لإنهاء العمل.

هنا سوف نحتاج لبعض الكودنج (كتابة الاسطر البرمجية ) لفعل ذلك

حتى يتم ذلك نحتاج الى التالي
node js , npm , visual studio code
منصبات على الجهاز الذي تستخدمه

أولاً دعونا نلخص المشكلة الى أجزاء أصغر وعلى ذلك نقوم بكتابة الكود
1 - حتى نستطيع الوصول الى الداتا نحتاج بما يسمى (axios) وهي مكتبة تساعدنا على القيام ب http request
JavaScript:
const axios = require('axios');

2 - نحتاج الى التلاعب بملفات الجهاز لنتسطيع خلق ملف جديد وهنا سنتخدم مكتبتين (fs ,fast-csv)
مكتبة fs هي اختصار ل file system وتسمح لنا بالتلاعب والوصول الى ملفات الجهاز
مكتبة fast-csv مكتبة نستطيع من خلالها خلق ملف اكسل

JavaScript:
const fs = require('fs');
const csv = require('fast-csv');

3 - إنشاء اسم ملف وحفظه داخل متغير
JavaScript:
const outputFile = 'users.csv';

4 - طريقة كتابة الفنكشن function وما نحتاجه بالفعل يكمن هنا
سنقوم بتسميه الفنكشن ب fetchData او ما يناسبك وهو فنكشن لا يقوم بإرجاع شيء بما يعني هو void
ثم لنتمكن من الوصول الى المصفوفة ذات الأسماء وكلمات السر نحتاج الى request سنتدعي هنا مكتبة axios ونستخدم الميثود get
JavaScript:
        const response = await axios.get(apiUrl);
طبعاً خزنت الريكوست في متغير لنتمكن من الحصول على الداتا
ثم سنقوم باستخدام مكتبة fs واستخدام الميثود createWriteStream هذا الميثود يستقبل بارميتر وهو الملف الذي عرفناه بالمتغير قبل قليل طبعاً وظيفة هذا الفنكشن هو خلق تيار حتى صل الداتا اله
JavaScript:
        const ws = fs.createWriteStream(outputFile);

ومن ثم سنتدعي مكتبة fast-csv لعمل فورمات
JavaScript:
        const csvStream = csv.format({ headers: true });
من ثم سنكتب على الهيدرز username , password
JavaScript:
        csvStream.write(['username', 'password']);
من ثم سنقوم بعمل لوب للكتابة كل اسم وكلمة السر الخاصة به على سطر واحد
JavaScript:
userData.forEach(user => {
            csvStream.write([user.username, user.password]);
        });
وهكذا نكون قد خلقنا في نفس الملف الذي تستخدم فيه الكود ملف اكسل يحتوي على الأسماء وكلمات السر


الكود كامل
JavaScript:
const axios = require('axios');
const fs = require('fs');
const csv = require('fast-csv');

const apiUrl = 'https://dummyjson.com/users';
const outputFile = 'dummy.csv';

async function fetchData() {
    try {
        const response = await axios.get(apiUrl);
        const userData = response.data.users;
        const ws = fs.createWriteStream(outputFile);
        const csvStream = csv.format({ headers: true });
        csvStream.pipe(ws);
        csvStream.write(['username', 'password']);
        userData.forEach(user => {
            csvStream.write([user.username, user.password]);
        });
        csvStream.end();
        console.log(`CSV file created successfully: ${outputFile}`);
    } catch (error) {
        console.error('Error fetching data:', error.message);
    }
}
fetchData();

صورة عن ملف الاكسل

دمتم سالمين وفي أمان الله
الله يعطيك الف عافيه حبيب القلب ما قصرت
ننتظر جديدك دايماً <3
 

آخر المشاركات

عودة
أعلى