سلام من از fastexel استفاده کردم و مشکلی با حروف فارسی نداره و راضی هستم ازش
https://github.com/rap2hpoutre/fast-excel
امیدوارم کمکت کنه
https://laravel-excel.com/
به این سایت یه نگاهی بنداز .
شاید پاسخ شما همینجا باشد
سلام
این فانکشن مشکلت رو برطرف میکنه و با توجه به اینکه پروژه لاراولی نیست، با فانکشن زیر نیازی به پکیج و... هم نداری. خروجی فارسی هم طبیعتاً باید بدون مشکل در فایل اکسل قابل مشاهده باشه و من خودم دارم ازش استفاده میکنم. فقط من کوئری رو توی جایی که مشخص کردم با کوئری بیلدر زدم که شما باید به صورت ساده بزنی و بفرستی به متغیر دیتا.
امیدوارم مشکلت برطرف بشه.
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);
}