Проблема с заменой данные xml exel php

176
02 июня 2017, 13:57

Всем привет, подскажите пожалуйста почему код не рабочий.Суть в том чтобы распаковывать xlsx, менять в нем значение ячейки, и запаковывать обратно.У меня не меняются данные,не сохраняются изменения в sharedStrings.xml.
Код sharedStrings.xml

<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" count="2" uniqueCount="2">
  <si>
    <t>Name</t>
  </si>
  <si>
    <t>LastName</t>
  </si>
</sst>

После работы скрипта

<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" 
           xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
  <sheetPr codeName="Лист1"/>
  <dimension ref="B2:C2"/>
  <sheetViews>
    <sheetView tabSelected="1" workbookViewId="0">
      <selection activeCell="C2" sqref="C2"/>
    </sheetView>
  </sheetViews>
  <sheetFormatPr defaultRowHeight="15"/>
  <sheetData>
    <row r="2" spans="2:3">
      <c r="B2" t="s">
        <v>0</v>
      </c>
      <c r="C2" t="s">
        <v>1</v>
      </c>
    </row>
  </sheetData>
  <pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
</worksheet>

Сам код скрипта

<?php
require_once('pclzip.lib.php');
$archive = new PclZip('1.xlsx');
if ($archive->extract() == 0) {
    die("Error : ".$archive->errorInfo(true));
}
$file=file_get_contents('xl/sharedStrings.xml');
$xml = (array)simplexml_load_string($file);
$sst = array();
foreach ($xml['si'] as $item=>$val) $sst[] = (string)$val->t;
$file = file_get_contents('xl/worksheets/sheet1.xml');
$xml = simplexml_load_string($file);
$data1 = array();
foreach ($xml->sheetData->row as $row){
    $currow = array();
    foreach ($row->c as $c){
        $value = (string)$c->v;
        $attrs = $c->attributes();
        if ($attrs['t'] == 's'){
            $currow[] = $sst[$value];
        }
        else{
            $currow[] = $value;
        }
    }
    $data1[] = $currow;
}
$line = $data1;
$line[0][0] = 'Saymon';
$line[0][1] = ' Black';
$xml->asXML('xl/sharedStrings.xml');
$archive = new PclZip('2.xlsx');
$result = $archive->create('xl/_rels/workbook.xml.rels,xl/theme/theme1.xml,xl/worksheets/sheet1.xml,xl/sharedStrings.xml,xl/styles.xml,xl/workbook.xml,docProps/app.xml,docProps/core.xml,_rels/,[Content_Types].xml');
?>
READ ALSO
Связь один ко многим Mysql

Связь один ко многим Mysql

Есть таблица users где информация о пользователе и соответственно его уникальный idМне необходимо создать вторую таблицу из двух столбцов

223
Разница подготовки запроса prepare

Разница подготовки запроса prepare

У меня был такой код

241
Экспорт в Excel

Экспорт в Excel

В общем на сайте есть форма с выпадающими списками полями для ввода данныхКак заполненную форму можно выгрузить в шаблон Excel? Смотрел PHPExcel,...

207
Экранирование символов в запросе curl

Экранирование символов в запросе curl

Добрый вечер, у меня проблема с POST запросом на CURL

646