


السمعة:
- إنضم11 أغسطس 2023
- المشاركات 11
- مستوى التفاعل 42
- النقاط 13
السلام عليكم ورحمة الله وبركاته
أثناء قيامي بإحدى المهام كنت أواجه مشكلة في اسم المستخدم وكلمة السر الخاصة به حيث أن هذه الأسماء وكلمات السر عبارة عن مصفوفة كبيرة
وأحتاج إستخراج هذه الأسماء وكلمات السر لملف إكسل لكي استخدمها في البرنامج لإنهاء العمل.
هنا سوف نحتاج لبعض الكودنج (كتابة الأسطر البرمجية ) لفعل ذلك
حتى يتم ذلك نحتاج إلى التالي:
node js , npm , visual studio code
مُنصبات على الجهاز الذي تستخدمه
أولاً دعونا نُجزء المشكلة إلى أجزاء صغيرة وعلى ذلك نقوم بكتابة الكود
1 - حتى نستطيع الوصول إلى الداتا نحتاج بما يسمى (axios) وهي مكتبة تساعدنا على القيام ب http request
2 - نحتاج إلى التلاعب بملفات الجهاز لنستطيع خلق ملف جديد وهنا سوف نستخدم مكتبتين (fs ,fast-csv)
مكتبة fs هي إختصار ل file system وتسمح لنا بالتلاعب والوصول إلى ملفات الجهاز
مكتبة fast-csv مكتبة نستطيع من خلالها خلق ملف إكسل
3 - إنشاء اسم ملف وحفظه داخل متغير
4 - طريقة كتابة الفنكشن function وما نحتاجه بالفعل يكمن هنا
سنقوم بتسميه الفنكشن ب fetchData او ما يناسبك وهو فنكشن لا يقوم بإرجاع شيء بما يعني أنه void
ثم لنتمكن من الوصول إلى المصفوفة ذات الأسماء وكلمات السر نحتاج الى request سوف نستدعي هنا مكتبة axios ونستخدم الميثود get
طبعاً خزنت الريكوست في متغير لنتمكن من الحصول على الداتا
ثم سنقوم باستخدام مكتبة fs واستخدام الميثود createWriteStream هذا الميثود يستقبل بارميتر وهو الملف الذي عرفناه بالمتغير قبل قليل طبعاً وظيفة هذا الفنكشن هو خلق تيار حتى تصل الداتا إليه
ومن ثم سوف نستدعي مكتبة fast-csv لعمل فورمات
من ثم سنكتب على الهيدرز username , password
من ثم سنقوم بعمل لوب لكتابة كل اسم وكلمة السر الخاصة به على سطر واحد
وهكذا نكون قد خلقنا في نفس الملف الذي تستخدم فيه الكود ملف إكسل يحتوي على الأسماء وكلمات السر
الكود كامل
صورة من ملف الإكسل
دمتم سالمين وفي أمان الله
أثناء قيامي بإحدى المهام كنت أواجه مشكلة في اسم المستخدم وكلمة السر الخاصة به حيث أن هذه الأسماء وكلمات السر عبارة عن مصفوفة كبيرة
وأحتاج إستخراج هذه الأسماء وكلمات السر لملف إكسل لكي استخدمها في البرنامج لإنهاء العمل.
هنا سوف نحتاج لبعض الكودنج (كتابة الأسطر البرمجية ) لفعل ذلك
حتى يتم ذلك نحتاج إلى التالي:
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 });
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();
صورة من ملف الإكسل
التعديل الأخير بواسطة المشرف: