اذهب إلى المحتوى
  • 0

كيف اقوم بتحميل ملف باستخدام رياكت ناتيف

أحمد عبد الله2

السؤال

اريد ان اقوم بتحميل ملف اكسل باستخدام رياكت ناتيف وهذا ال response الذي ياتي لي 

كيف يمكنني ان اقوم بتحميل هذه ال response كملف باستخدام رياكت ناتيف 

Screenshot 2023-04-17 at 11.18.09 AM.png

Screenshot 2023-04-17 at 11.18.19 AM.png

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

جرب استخدام هذا كود الذي يستخدم المكتبة react-excel-renderer لتحميل ملف الـ excel ثم يقوم بعرض النتيجة في جدول :

import React from 'react';
import {ExcelRenderer} from 'react-excel-renderer';

class ExcelPage extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      rows: [],
      cols: []
    };
  }

  fileHandler = (event) => {
    let fileObj = event.target.files[0];

    //just pass the fileObj as parameter
    ExcelRenderer(fileObj, (err, resp) => {
      if(err){
        console.log(err);
      }
      else{
        this.setState({
          cols: resp.cols,
          rows: resp.rows
        });
      }
    });
  }

  render() {
    return (
      <div>
        <input type="file" onChange={this.fileHandler.bind(this)} style={{padding: '10px'}} />
        <br />
        <table>
          <thead>
            <tr>
              {this.state.cols.map((c) => <th>{c}</th>)}
            </tr>
          </thead>
          <tbody>
            {this.state.rows.map((r) => <tr>{r.map((d) => <td>{d}</td>)}</tr>)}
          </tbody>
        </table>
      </div>
    );
  }
}

export default ExcelPage;

في حال لم يعمل الكود السابق فقد تكون المشكلة من ملف الـ excel، ولذلك جرب استخدام ملف excel اخر.

وفي حال لم يعمل، جرب استخدام مكتبة ثانية.

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

لتحميل ملف باستخدام React Native، تستطيع استخدام مكتبة RNFetchBlob المتاحة عبر npm، ويمكن استخدام RNFetchBlob للتعامل مع البيانات المستلمة من API، بما في ذلك الملفات.

فيما يلي مثال على كيفية استخدام RNFetchBlob لتحميل ملف Excel:

1- تثبيت المكتبة RNFetchBlob باستخدام الأمر التالي في مجلد مشروع React Native:

npm install --save rn-fetch-blob

2- قم بإضافة import RNFetchBlob من rn-fetch-blob  في أعلى ملف .js الخاص بك:

import RNFetchBlob from 'rn-fetch-blob';

3- استخدم RNFetchBlob لتنزيل الملف بمجرد الحصول على الاستجابة (response) من الخادم:

RNFetchBlob
  .config({
    fileCache: true,
    appendExt: 'xlsx',
    path: RNFetchBlob.fs.dirs.DocumentDir + '/file_name.xlsx',
  })
  .fetch('GET', 'http://example.com/file_name.xlsx', {})
  .then(res => {
    console.log('The file saved to ', res.path());
  });

في المثال، سيتم حفظ الملف في مجلد DocumentDir على الجهاز الخاص بالمستخدم باسم 'file_name.xlsx' و يمكنك تغيير الاسم والمسار على حسب الحاجة.

وبعد تحميل الملف، سيتم تحويله إلى مسار الملف المحلي، و يمكنك استخدام هذا المسار لعرض الملف في التطبيق أو فتحه باستخدام تطبيق خارجي.

ويمكنك استخدام مكتبات أخرى مثل:

  1. React Native FS:  تسمح لك بالوصول إلى نظام الملفات الخاص بالجهاز وتنزيل الملفات عليه. يمكن استخدامها لتنزيل الملفات وتخزينها في الذاكرة المحلية.
  2. React Native Background Downloader:  تمكّنك من تنزيل الملفات في الخلفية وإدارة عمليات التنزيل بينما يعمل التطبيق في الخلفية.
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

 يمكن تنفيذ عملية تنزيل ملف Excel وحفظه على الجهاز في React Native دون استخدام مكتبات خارجية، باستخدام fetch API. يمكنك استخدام الكود التالي:

// تحميل ملف الإكسل
fetch('https://example.com/excel-file', {
  method: 'GET',
})
.then((response) => response.blob())
.then((blob) => {
  // إنشاء رابط URL للملف المحمل
  const url = URL.createObjectURL(blob);
  // إنشاء عنصر a للتنزيل
  const link = document.createElement('a');
  link.href = url;
  link.setAttribute('download', 'example.xlsx');

  // إضافة العنصر a للصفحة والنقر عليه للتحميل
  document.body.appendChild(link);
  link.click();
  // حذف العنصر a بعد التحميل
  link.parentNode.removeChild(link);
})
.catch((error) => {
  console.error(error);
});

في هذا المثال، يتم استخدام fetch API لتنفيذ طلب GET لتحميل ملف الإكسل من https://example.com/excel-file. بعد ذلك، يتم استخدام response.blob() لتحويل الملف إلى كائن Blob. يتم إنشاء رابط URL للملف المحمل باستخدام URL.createObjectURL(blob)، ثم يتم إنشاء عنصر a باستخدام document.createElement('a') ويتم تعيين خاصية href للرابط URL وخاصية download لاسم الملف. يتم إضافة العنصر a للصفحة باستخدام document.body.appendChild(link)، ويتم النقر على العنصر a لتنزيل الملف باستخدام link.click()، ثم يتم حذف العنصر a بعد التحميل باستخدام link.parentNode.removeChild(link).

كما أن هناك العديد من المكتبات التي يمكن استخدامها في React Native للتعامل مع ملفات Excel. فيما يلي بعض المكتبات الشائعة التي يمكن استخدامها:

  • react-native-xlsx: مكتبة لقراءة وكتابة ملفات Excel في React Native باستخدام OpenXML.
  • react-native-excel: مكتبة لقراءة وكتابة ملفات Excel في React Native باستخدام OpenXML و Apache POI.
  • exceljs: مكتبة لقراءة وكتابة ملفات Excel في JavaScript.
  • xlsx: مكتبة لقراءة وكتابة ملفات Excel في JavaScript.

تختلف المكتبات في الوظائف التي تدعمها والطريقة التي تتعامل بها مع ملفات Excel، لذلك يجب اختيار المكتبة المناسبة بناءً على متطلبات المشروع.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...