رامین پورمحمد
3 سال پیش توسط رامین پورمحمد مطرح شد
5 پاسخ

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

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


ثبت پرسش جدید
Hassan Kazemi
تخصص : برنامه نویس اپلیکیشن اندروید و...
@hassankazemy900 3 سال پیش مطرح شد
1

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


hosein azimi
تخصص : توسعه دهنده وب
@hossein.azeemi 3 سال پیش مطرح شد
0

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


رامین پورمحمد
تخصص : برنامه نویس php
@raminpmh 3 سال پیش مطرح شد
0

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


رامین پورمحمد
تخصص : برنامه نویس php
@raminpmh 3 سال پیش مطرح شد
0

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


احسان رضوی
تخصص : توسعه دهنده‌ی وب
@ehsan.in 3 سال پیش مطرح شد
0

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

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);
}

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

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