public function run($args) { Yii::import('application.components.PHPExcel.PHPExcel.Reader.PHPExcel_Reader_CSV'); Yii::import('application.components.PHPExcel.PHPExcel.Writer.PHPExcel_Writer_CSV'); Yii::import('application.modules.store.models'); $attributesInputFileName = Yii::getPathOfAlias('application.components.spreadsheetReader.translates') . '/' . 'site_store_attribute.csv'; $objReader = new PHPExcel_Reader_CSV(); $objPHPExcel = $objReader->load($attributesInputFileName); $db = \Yii::app()->db; $attributes = $db->createCommand()->select('id, title_ru')->from('site_store_attribute')->queryAll(); $attributesData = []; foreach ($attributes as $attribute) { $attributesData[] = ['id' => $attribute['id'], 'title_ru' => $attribute['title_ru']]; } $attributesRow = 1; $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', 'ID')->setCellValue('B1', 'Название'); $attributesRow++; foreach ($attributesData as $value) { $objPHPExcel->getActiveSheet()->setCellValue('A' . $attributesRow, $value['id'])->setCellValue('B' . $attributesRow, $value['title_ru']); $attributesRow++; } $objWriter = new PHPExcel_Writer_CSV($objPHPExcel); $objWriter->setDelimiter(';'); $objWriter->setLineEnding("\r\n"); $objWriter->setSheetIndex(0); $objWriter->setUseBOM(true); $objWriter->save($attributesInputFileName); $optionsInputFileName = Yii::getPathOfAlias('application.components.spreadsheetReader.translates') . '/' . 'site_store_attribute_option.csv'; $objReaderOptions = new PHPExcel_Reader_CSV(); $objPHPExcelOptions = $objReaderOptions->load($optionsInputFileName); $attributesOptions = $db->createCommand()->select('id, value_ru')->from('site_store_attribute_option')->queryAll(); $attributesOptionsData = []; foreach ($attributesOptions as $attributeOption) { $attributesOptionsData[] = ['id' => $attributeOption['id'], 'value_ru' => $attributeOption['value_ru']]; } $attributesOptionsRow = 1; $objPHPExcelOptions->setActiveSheetIndex(0)->setCellValue('A1', 'ID')->setCellValue('B1', 'Название'); $attributesOptionsRow++; foreach ($attributesOptionsData as $value) { $objPHPExcelOptions->getActiveSheet()->setCellValue('A' . $attributesOptionsRow, $value['id'])->setCellValue('B' . $attributesOptionsRow, $value['value_ru']); $attributesOptionsRow++; } $objWriterOptions = new PHPExcel_Writer_CSV($objPHPExcelOptions); $objWriterOptions->setDelimiter(';'); $objWriterOptions->setLineEnding("\r\n"); $objWriterOptions->setSheetIndex(0); $objWriterOptions->setUseBOM(true); $objWriterOptions->save($optionsInputFileName); }
public function run($args) { Yii::import('application.components.PHPExcel.PHPExcel.Reader.PHPExcel_Reader_CSV'); Yii::import('application.components.PHPExcel.PHPExcel.Writer.PHPExcel_Writer_CSV'); Yii::import('application.modules.dictionary.models'); $inputFileType = 'CSV'; $inputFileName = Yii::getPathOfAlias('application.components.spreadsheetReader.translates') . '/' . 'site_dictionary_dictionary_data.csv'; $objReader = new PHPExcel_Reader_CSV(); $objPHPExcel = $objReader->load($inputFileName); $db = \Yii::app()->db; $dictionaries = $db->createCommand()->select('id, group_id, name_ru')->from('site_dictionary_dictionary_data')->queryAll(); $data = []; $group = []; foreach ($dictionaries as $dictionary) { $group = $db->createCommand()->select('name_ru')->from('site_dictionary_dictionary_group')->where('id=' . $dictionary['group_id'])->queryRow(); $data[] = ['id' => $dictionary['id'], 'group_name' => $group['name_ru'], 'name_ru' => $dictionary['name_ru']]; } $row = 1; $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1', 'ID')->setCellValue('B1', 'Название справочника')->setCellValue('C1', 'Значение'); $row++; foreach ($data as $value) { $objPHPExcel->getActiveSheet()->setCellValue('A' . $row, $value['id'])->setCellValue('B' . $row, $value['group_name'])->setCellValue('C' . $row, $value['name_ru']); $row++; } $objWriter = new PHPExcel_Writer_CSV($objPHPExcel); $objWriter->setDelimiter(';'); $objWriter->setLineEnding("\r\n"); $objWriter->setSheetIndex(0); $objWriter->setUseBOM(true); $objWriter->save($inputFileName); }