راکت

خروجی اکسل با utf8

5 پاسخ

سلام
من میخوام از دیتابیسم خروجی اکسل بگیرم
ولی حروف فارسی رو به صورت هش شده پس میده بهم
کسی میدونه چطور میشه درستش کرد؟
به ssh هاست هم دسترسی ندارم

ثبت پرسش جدید

پاسخ‌ها

5
Hassan Kazemi
Hassan Kazemi
@hassankazemy900

تخصص: برنامه نویس اپلیکیشن اندروید و بک اند سایت (لاراول)

سلام من از fastexel استفاده کردم و مشکلی با حروف فارسی نداره و راضی هستم ازش
https://github.com/rap2hpoutre/fast-excel
امیدوارم کمکت کنه

hosein azimi
hosein azimi
@hossein.azeemi

تخصص: توسعه دهنده وب

https://laravel-excel.com/
به این سایت یه نگاهی بنداز .

شاید پاسخ شما همین‌جا باشد

رامین پورمحمد
رامین پورمحمد
@raminpmh

تخصص: برنامه نویس php

سایت با PHP زده شده و لاراول نیست !!

رامین پورمحمد
رامین پورمحمد
@raminpmh

تخصص: برنامه نویس php

سلام ، متاسفانه سایت با لاراول زده نشده

احسان رضوی
احسان رضوی
@ehsan.in

تخصص: توسعه دهنده‌ی وب

سلام
این فانکشن مشکلت رو برطرف می‌کنه و با توجه به اینکه پروژه لاراولی نیست، با فانکشن زیر نیازی به پکیج و... هم نداری. خروجی فارسی هم طبیعتاً باید بدون مشکل در فایل اکسل قابل مشاهده باشه و من خودم دارم ازش استفاده می‌کنم. فقط من کوئری رو توی جایی که مشخص کردم با کوئری بیلدر زدم که شما باید به صورت ساده بزنی و بفرستی به متغیر دیتا.
امیدوارم مشکلت برطرف بشه.

public function export()
{
    $data = DB::table('users')
        ->select('name', 'lastname')->where('role', '!=', 'admin')->get(); //به جای این کوئری مورد نظرت رو به دیتابیس بزن و پاس بده به متغیر data

    $data = json_decode(json_encode($data), True);

    function cleanData(&$str)
    {
        if ($str == 't') $str = 'TRUE';
        if ($str == 'f') $str = 'FALSE';
        if (preg_match("/^0/", $str) || preg_match("/^\+?\d{8,}$/", $str) || preg_match("/^\d{4}.\d{1,2}.\d{1,2}/", $str) || preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $str)) {
            $str = " $str";
        }
        if (strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
    }

    // filename for download
    $filename = "export_" . date('Ymd') . ".csv";

    header("Content-Disposition: attachment; filename=\"$filename\"");
    header("Content-Type: text/csv");

    $out = fopen("php://output", 'w');
    fprintf($out, chr(0xEF) . chr(0xBB) . chr(0xBF)); //جهت نمایش صحیح کاراکترهای فارسی

    $flag = false;
    foreach ($data as $row) {
        if (!$flag) {
            // display field/column names as first row
            fputcsv($out, array_keys($row), ',', '"');
            $flag = true;
        }
        array_walk($row, __NAMESPACE__ . '\cleanData');
        fputcsv($out, array_values($row), ',', '"');
    }

    fclose($out);
}

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام