protected function writeRawCsv($data, Sheet $sheet) { $fileName = $sheet->getGoogleId() . "_" . $sheet->getSheetId() . "_" . date('Y-m-d') . '-' . uniqid() . ".csv"; /** @var SplFileInfo $fileInfo */ $fileInfo = $this->temp->createFile($fileName); $fh = fopen($fileInfo->getPathname(), 'w+'); if (!$fh) { throw new \Exception("Can't write to file " . $fileInfo->getPathname()); } /* @var Stream $data */ fwrite($fh, $data->getContents()); fclose($fh); return $fileInfo->getPathname(); }
public function addSheet(Sheet $sheet) { $origSheet = $this->getSheet($sheet->getGoogleId(), $sheet->getSheetId()); if (null == $origSheet) { $sheet->setAccount($this); $fileIds = array(); /** @var Sheet $savedSheet */ foreach ($this->sheets as $savedSheet) { $gid = $savedSheet->getGoogleId(); if (!isset($fileIds[$gid])) { $fileIds[$gid] = $savedSheet->getFileId(); } } $nextFileId = 0; if (!empty($fileIds)) { if (isset($fileIds[$sheet->getGoogleId()])) { $nextFileId = $fileIds[$sheet->getGoogleId()]; } else { $nextFileId = max($fileIds) + 1; } } $tableName = $nextFileId . '-' . $this->removeSpecialChars($sheet->getSheetTitle()); $sheet->setFileId($nextFileId); if ($sheet->getConfig() == null) { $sheet->setConfig(array('header' => array('rows' => 1), 'db' => array('table' => $this->getInBucketId() . '.' . $tableName))); } } else { // Update Sheet $this->removeSheet($origSheet->getFileId(), $origSheet->getSheetId()); $origSheet->fromArray($sheet->toArray()); $sheet = $origSheet; } $this->sheets[] = $sheet; }