#php #wordpress #phpexcel
#php #wordpress #phpexcel
Вопрос:
require_once '../Classes/PHPExcel/IOFactory.php';
/** PHPExcel */require_once '../Classes/PHPExcel.php';
$excel2 = PHPExcel_IOFactory::createReader('Excel2007');
$excel2 = $excel2->load('dentkey.xlsx');
$excel2->setLoadAllSheets();
$excel2->setActiveSheetIndex(0);
$excel2->getActiveSheet()->setCellValue('C6', '4')
->setCellValue('C7', '5')
->setCellValue('C8', '6')
->setCellValue('C9', '7');
$excel2->setActiveSheetIndex(1);
$excel2->getActiveSheet()->setCellValue('A7', '4')
->setCellValue('C7', '5');
$objWriter = PHPExcel_IOFactory::createWriter($excel2, 'Excel2007');
$objWriter->save('dentkey1.xlsx');
здесь я могу загрузить файл (.xlsx), а также изменить (dentkey.xlsx ).
Но после создания нового файла .xlsx (dentkey1.xlsx ) .. все данные рабочих листов, которые были в (dentkey.xlsx ) не загружается, а также я не могу установить значение для 2-го листа.
вы можете нормально
$excel2->setActiveSheetIndex(1);
$excel2->getActiveSheet()->setCellValue('A7', '4')
->setCellValue('C7', '5');
не устанавливается значение 5 в столбец ‘C7’ сгенерированного (dentkey.xlsx ) файл
пожалуйста, помогите мне…
заранее большое спасибо
Комментарии:
1. возможно ли выполнить запись в Excel в режиме добавления? сценарий: 1) создать новый объект Excel и вставить данные 2) записать объект в существующий файл Excel, добавив новый рабочий лист, поэтому, если в файле есть рабочий лист: «Лист 1», «Лист 2», «Лист 3», запись создаст «Лист 4», но не удалит ранее записанныйлисты
Ответ №1:
Этот код кажется рабочим, протестирован в локальной среде WampServer Version 2.1
Загрузите последнюю версию PHPExcel отсюда PHPExcel 1.7.6
Рабочий код.
<?php
error_reporting(E_ALL);
date_default_timezone_set('Europe/London');
require_once '../Classes/PHPExcel/IOFactory.php';
require_once '../Classes/PHPExcel.php';
$excel2 = PHPExcel_IOFactory::createReader('Excel2007');
$excel2 = $excel2->load('nTest.xlsx'); // Empty Sheet
$excel2->setActiveSheetIndex(0);
$excel2->getActiveSheet()->setCellValue('C6', '4')
->setCellValue('C7', '5')
->setCellValue('C8', '6')
->setCellValue('C9', '7');
$excel2->setActiveSheetIndex(1);
$excel2->getActiveSheet()->setCellValue('A7', '4')
->setCellValue('C7', '5');
$objWriter = PHPExcel_IOFactory::createWriter($excel2, 'Excel2007');
$objWriter->save('Nimit New.xlsx');
?>
Удалите эту строку из вашего кода: $excel2->setLoadAllSheets();
.
Надеюсь, это поможет.
Комментарии:
1. Спасибо за ответ … привет, нДудани, просто дай тебе знать мой файл xlsx (dentket.xlsx ) содержит макрос и функцию (вычисление), используя ваш код, новый файл (dentkey1.xlsx ) генерируется, но не соответствует существующей функции или макросам, я надеюсь, вы понимаете мой вопрос…..
2. можете ли вы загрузить dentket.xlsx где-нибудь? так что я могу протестировать в реальном сценарии
3. да, конечно, есть ли у вас какая-либо идея, где (после загрузки этого файла xlsx) вы и я можем получить доступ к этому файлу .. или вы можете просто дать мне свой emai-адрес, который я немедленно отправлю вам… Заранее большое спасибо.
4. Макросы и пользовательские функции не поддерживаются в PHPExcel; и библиотека отбрасывает любые неподдерживаемые функции рабочей книги при ее загрузке, поэтому они вообще не существуют в объекте PHPExcel… при сохранении PHPExcel сохраняет только те элементы рабочей книги, которые существуют в объекте PHPExcel.
5. привет, нДудани, в PHPExce/cell.php строка № 288, я только что прокомментировал строку кода исключения, вывод заключается в том, что мой файл xlsx будет загружаться с существующими данными, но без ссылок на мультишаблоны, и вычисления также останутся прежними… Спасибо всем за помощь