PHP XLS Reader 正在编写额外的列导入

问题描述 投票:0回答:1

我有一个函数,可以在 php 上读取 xls,对其进行转换,然后以 csv 格式返回,这是 html

<!DOCTYPE html>
<html>
<head>
    <title>Import</title>
</head>
<body>
    <h1>File upload</h1>
    <form method="POST" action="process.php" enctype="multipart/form-data">
        <label>File</label>
        <input type="file" name="arquivo"><br><br>
        <input type="submit" value="send">
    </form>
</body>
</html>

及加工:

<?php

require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\IOFactory;

function extractIdFromUrl($url) {
    if (strpos($url, 'senado.leg.br') !== false) {
        preg_match('/\/materia\/(\d+)$/', $url, $matches);
        if (!empty($matches[1])) {
            return $matches[1];
        }
    }

    if (strpos($url, 'camara.leg.br') !== false) {
        preg_match('/\?idProposicao=(\d+)$/', $url, $matches);
        if (!empty($matches[1])) {
            return $matches[1];
        }
    }

    return '';
}

function readData($arquivo){
    $reader = IOFactory::createReader("Xls");
    $spreadsheet = $reader->load($arquivo);
    $sheet_count = $spreadsheet->getSheetCount();
    $achou = FALSE;
    $csvFileName = 'output.csv';
    $csvFile = fopen($csvFileName, 'w');
    for ($i = 0; $i < $sheet_count; $i++) {
        $sheet = $spreadsheet->getSheet($i);

        $headerRow = $sheet->getRowIterator(1)->current();
        $cellIterator = $headerRow->getCellIterator();
        $cellIterator->setIterateOnlyExistingCells(false);

        $header = [];
        foreach ($cellIterator as $cell) {
            if (!is_null($cell)) {
                $value = $cell->getCalculatedValue();
                $header[] = $value;
            }
        }
        fputcsv($csvFile, $header);
        foreach ($sheet->getRowIterator(2) as $row) {
            $cellIterator = $row->getCellIterator();
            $cellIterator->setIterateOnlyExistingCells(true);

            $rowData = [];
            foreach ($cellIterator as $cell) {
                
                if (!is_null($cell)) {
                    // if ($cell->hasHyperlink()) {
                    //     $hyperlink = $cell->getHyperlink();
                    //     $url = $hyperlink->getUrl();
                    //     $rowData[] = $cell->getCalculatedValue();
                    //     $rowData[] = $url;
                    //     $id = extractIdFromUrl($url);

                    //     if (!empty($id) && $id >= 1000000) {
                    //         $rowData[] = '';
                    //         $rowData[] = $id;
                    //     } else if(!empty($id) && $id < 1000000){
                    //         $rowData[] = $id;
                    //         $rowData[] = '';
                    //     }
                    // }else{
                        $value = $cell->getCalculatedValue();
                        $rowData[] = $value;
                    }
                    
                }

            }
            fputcsv($csvFile, $rowData);
        }
    }

    fclose($csvFile);
    echo "CSV file generated: $csvFileName";
}

if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_FILES['arquivo'])) {
    $route = $_FILES['arquivo']['tmp_name'];
    readData($route);
}
?>

使用此代码,它成功地将精确的 xls 表转换为 csv,但问题是,我的 xls 表的第二列是超链接,所以我希望第三列是这些超链接的 url,我的方法 extractIdFromUrl 将提取来自URL的id,如果id小于1000000,它应该打印在第四列,如果它更大,它应该打印在第五列,如果我取消注释我的代码,它几乎会这样做,但不仅仅是修改列的内容,它在找到带有超链接的行后生成 3 个额外的列,并使我的表格未对齐,最后三列没有标题

我尝试了很多次更改代码,但我不知道如何修改列而无需添加额外的列

这是我输入的 csv 中的等效内容,也是 xls 的图像
xls 图片

"Proposição","Proposição_Autor_Data:","Site da Preposição","Cod. Materia Senado","Id. da Preposição","Ementa:","Responsável","Origem","Avaliado","Classificação","Ano"
"PL 2524/2024 ","PL 2524/2024 
Autor: Senador Mecias de Jesus (REPUBLICANOS/RR)
Data da apresentação:  21/06/2024","","","","Dispõe sobre os direitos do nascituro na ordem civil, estabelecendo a presunção absoluta de viabilidade fetal a partir da vigésima segunda semana de gravidez.","karlla.magalhães","Senado Federal","Não","Relevante","2024"
"PL 2473/2024 ","PL 2473/2024 
Autor: Senador Jayme Campos (UNIÃO/MT)
Data da apresentação:  19/06/2024","","","","Altera a Lei nº 9.656, de 3 de junho de 1998, que dispõe sobre os planos e seguros privados de assistência à saúde, para vedar a rescisão unilateral do contrato ou do vínculo dos planos de saúde de beneficiário que estiver internado ou em tratamento garantidor de sua sobrevivência ou de sua incolumidade física.","karlla.magalhães","Senado Federal","Não","Relevante","2024"
"PL 2415/2024 ","PL 2415/2024 
Autor: Senador Flávio Arns (PSB/PR)
Data da apresentação:  18/06/2024","","","","Altera a Lei nº 9.656, de 3 de junho de 1998, que dispõe sobre os planos e seguros privados de assistência à saúde, e a Lei nº 9.961, de 28 de janeiro de 2000, que cria a Agência Nacional de Saúde Suplementar – ANS e dá outras providências, para estender aos planos de saúde coletivos normas aplicáveis aos planos de saúde individuais ou familiares.","karlla.magalhães","Senado Federal","Não","Relevante","2024"
"PL 2522/2024 ","PL 2522/2024 
Autor: Sâmia Bomfim - PSOL/SP
Data da apresentação:  20/06/2024 ","","",""," Estabelece que, nos casos em que o aborto é autorizado, a invocação do dispositivo da objeção de consciência para recusar a realização do aborto e o não oferecimento das melhores técnicas em saúde que possam salvar a vida meninas, mulheres e de pessoas que tenham direito a passar pelo procedimento nas unidades de serviço de saúde públicas e privadas que o realizam, configura crime de omissão de socorro, nos termos do Decreto-Lei nº 2 848, de 7 de dezembro de 1940 (Código Penal Brasileiro), e dá outras providências. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2521/2024 ","PL 2521/2024 
Autor: Sâmia Bomfim - PSOL/SP
Data da apresentação:  20/06/2024 ","","","","Dispõe sobre a obrigatoriedade de profissionais da saúde de unidades de saúde públicas ou privadas informarem às vítimas de estupro, ou representante legal, a respeito da possibilidade de realização de aborto no caso de gravidez resultante de estupro. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2520/2024 ","PL 2520/2024 
Autor: Sâmia Bomfim - PSOL/SP
Data da apresentação:  20/06/2024 ","","","","Dispõe sobre o exercício da medicina nos serviços públicos de saúde, no âmbito dos procedimentos de aborto legal, visando garantir o acesso pleno e irrestrito aos direitos reprodutivos de meninas, mulheres e todas as pessoas que possam gestar. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2514/2024 ","PL 2514/2024 
Autor: Fábio Teruel - MDB/SP
Data da apresentação:  20/06/2024 ","","","","Dispõe sobre a obrigatoriedade de divulgação pública das informações relativas ao recolhimento de produtos alimentícios pela Agência Nacional de Vigilância Sanitária (Anvisa) por motivo de inconformidade com as normas de vigilância sanitária e dá outras providências.","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2510/2024","PL 2510/2024 
Autor: Samuel Viana - REPUBLIC/MG
Data da apresentação:  20/06/2024 ","","","","Criação do Programa Nacional de Tratamento de Lesões Crônicas e dá outras providências ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2504/2024","PL 2504/2024 
Autor: Fausto Pinato - PP/SP
Data da apresentação:  20/06/2024 ","","","","Altera a Lei nº 14.543, de 3 de abril de 2023, para obrigar o poder público a fornecer atendimento a pessoas com depressão. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2499/2024 ","PL 2499/2024 
Autor: Coronel Meira - PL/PE; Dr. Fernando Máximo - UNIÃO/RO; Rodrigo Valadares - UNIÃO/SE e outros
Data da apresentação:  19/06/2024 ","","","","Dispõe sobre a obrigatoriedade da notificação à autoridade policial, pelos hospitais, clínicas e unidades básicas de saúde, da interrupção de gestação decorrente de estupro e dá outras providências. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2494/2024 ","PL 2494/2024 
Autor: Clodoaldo Magalhães - PV/PE
Data da apresentação:  19/06/2024 ","","","","Dispõe sobre a concessão de meia-entrada para profissionais de saúde, policiais, bombeiros, pessoas com autismo e seus acompanhantes, pessoas com deficiência e seus acompanhantes em eventos culturais, esportivos e de lazer. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2490/2024","PL 2490/2024
Autor: Pastor Gil - PL/MA
Data da apresentação:  19/06/2024 ","","","","Institui a obrigatoriedade do pagamento de bolsa insalubridade e remuneração aos estudantes de medicina a partir do quinto ano durante o período de internato médico e dá outras providências. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2489/2024 ","PL 2489/2024 
Autor: Castro Neto - PSD/PI
Data da apresentação:  19/06/2024 ","","","","Altera a Lei nº 13.146, de 6 de julho de 2015, Estatuto da Pessoa com Deficiência. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2488/2024 ","PL 2488/2024 
Autor: Capitão Samuel - PP/SE
Data da apresentação:  19/06/2024 ","","","","Altera o art. 4º da Lei nº 8.080, de 19 de setembro de 1990, para incluir as comunidades terapêuticas entre as ações e serviços de saúde que constituem o Sistema Único de Saúde ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2482/2024 ","PL 2482/2024 
Autor: Júnior Mano - PL/CE
Data da apresentação:  19/06/2024 ","","","","Dispõe sobre a notificação compulsória de transtornos alimentares com consequências graves à saúde física ou mental, bem como traça diretrizes ao Poder Público para o enfrentamento deste agravo à saúde. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2477/2024 ","PL 2477/2024 
Autor: Aureo Ribeiro - SOLIDARI/RJ
Data da apresentação:  19/06/2024 ","","","","Altera a Lei nº 13.733, de 16 de novembro de 2018, para incluir o câncer colorretal nas atividades da campanha do Outubro Rosa. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2476/2024 ","PL 2476/2024 
Autor: Aureo Ribeiro - SOLIDARI/RJ
Data da apresentação:  19/06/2024 ","","","","Dispõe sobre a inclusão da Estimulação Magnética Transcraniana (EMT) na lista de procedimentos do Sistema Único de Saúde (SUS). ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2471/2024","PL 2471/2024 
Autor: Clarissa Tércio - PP/PE
Data da apresentação:  19/06/2024 ","","","","Altera a Lei nº 14.254, de 30 de novembro de 2021, a fim de ampliar os cuidados aos educandos com dislexia ou Transtorno do Déficit de Atenção com Hiperatividade (TDAH) ou outro transtorno de aprendizagem. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2469/2024 ","PL 2469/2024 
Autor: Yandra Moura - UNIÃO/SE
Data da apresentação:  19/06/2024 ","","","","Institui o Programa Nacional de Cuidado Integral para os Primeiros 1000 Dias de Vida, visando a promoção da saúde, nutrição, desenvolvimento e apoio social às gestantes, crianças e suas famílias, desde a concepção até o ingresso e permanência em creches, e dá outras providências. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2466/2024","PL 2466/2024 
Autor: Legislação Participativa
Data da apresentação:  19/06/2024 ","","","","Acrescenta o art. 244-A ao Decreto-Lei nº. 2.848, de 7 de dezembro de 1940 (Código Penal), para dispor sobre o crime de abandono vacinal. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2464/2024 ","PL 2464/2024 
Autor: Marcos Tavares - PDT/RJ
Data da apresentação:  18/06/2024 ","","","","Cria a Lei de Telemedicina e Telessaúde, definindo os parâmetros para a utilização de tecnologias de comunicação e informação no atendimento à saúde. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2456/2024 ","PL 2456/2024 
Autor: Otto Alencar Filho - PSD/BA
Data da apresentação:  18/06/2024 ","","","","Altera a Lei nº 9.656, de 3 de junho de 1998, que dispõe sobre os planos e seguros privados de assistência à saúde. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2448/2024","PL 2448/2024 
Autor: Marcos Tavares - PDT/RJ
Data da apresentação:  18/06/2024 ","","","","Cria a Lei de Incentivo à Formação e Fixação de Profissionais de Saúde em Áreas de Vulnerabilidade Social. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2446/2024 ","PL 2446/2024 
Autor: Mario Frias - PL/SP
Data da apresentação:  18/06/2024 ","","","","Institui a política nacional de atenção dedicada ao cuidado e à saúde do homem, relacionada à deficiência androgênica do envelhecimento masculino e à disfunção erétil no âmbito do Sistema Único de Saúde do Governo Federal – SUS. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2425/2024 ","PL 2425/2024 
Autor: Julio Lopes - PP/RJ
Data da apresentação:  18/06/2024 ","","","","Altera a Lei nº 8.080, de 19 de setembro de 1990, para tratar da dispensação de óculos e próteses oculares aos usuários do Sistema Único de Saúde. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2408/2024 ","PL 2408/2024 
Autor: Fausto Pinato - PP/SP
Data da apresentação:  17/06/2024 ","","",""," Proíbe a utilização de termos correlatos para a descrição da causa de morte por suicídio em todos os documentos oficiais, registros médicos, laudos periciais, boletins de ocorrência, laudo do IML, atestado de óbito, publicações científicas e demais instrumentos que mencionem a causa de morte. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2403/2024 ","PL 2403/2024 
Autor: Maria Rosas - REPUBLIC/SP
Data da apresentação:  17/06/2024 ","","","","Institui a campanha nacional “Abril Marrom”, dedicada à prevenção da cegueira e à inclusão de pessoas com deficiência visual, e dá outras providências. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PL 2401/2024 ","PL 2401/2024 
Autor: Fernanda Pessoa - UNIÃO/CE
Data da apresentação:  17/06/2024 ","","","","Dispõe sobre o congelamento de óvulos para paciente em tratamento oncológico - Altera a Lei nº 9.656, de 3 de junho de 1998.","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"PDL 306/2024","PDL 306/2024 
Autor: Vinicius Carvalho - REPUBLIC/SP
Data da apresentação:  18/06/2024 ","","","","Susta o artigo 40 da Resolução CNRM Nº 17, de 21 de dezembro de 2022 que dispõe sobre o processo de seleção pública dos candidatos aos Programas de Residência Médica autorizados em Instituições Credenciadas pela Comissão Nacional de Residência e dá outras providências. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"REQ 176/2024 CFFC ","REQ 176/2024 CFFC 
Autor: Aureo Ribeiro - SOLIDARI/RJ
Data da apresentação:  19/06/2024 ","","","","Requer a realização de auditoria, juntamente com o Tribunal de Contas da União (TCU), a fim de fiscalizar a Agência Nacional de Saúde Suplementar (ANS) a respeito de sua atuação regulatória e fiscalizatória sobre as operadoras de planos de saúde. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"REQ 176/2024 CSAUDE","REQ 176/2024 CSAUDE 
Autor: Dr. Frederico - PRD/MG
Data da apresentação:  18/06/2024 ","","","","Requer o convite da Excelentíssima Senhora Ministra do Planejamento e Orçamento, Exma. Sr. Simone Tebet, para prestar esclarecimentos sobre a revisão das despesas públicas para o Orçamento de 2025, e possíveis impactos no piso constitucional da saúde. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"REQ 174/2024 CSAUDE ","REQ 174/2024 CSAUDE 
Autor: Adriana Ventura - NOVO/SP; Dimas Gadelha - PT/RJ; Iza Arruda - MDB/PE
Data da apresentação:  18/06/2024 ","","","","Requer a realização de audiência pública para debater o PL 3930, de 2023, que altera a Lei nº 12.933, de 26 de dezembro de 2013, para assegurar aos profissionais de saúde o benefício do pagamento de meia-entrada. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"REQ 43/2024 CPASF ","REQ 43/2024 CPASF 
Autor: Dr. Allan Garcês - PP/MA
Data da apresentação:  19/06/2024 ","","","","Requer a realização de audiência pública nesta Comissão com o objetivo de discutir os danos da utilização de cigarros eletrônicos. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"INC 632/2024 ","INC 632/2024 
Autor: Aureo Ribeiro - SOLIDARI/RJ
Data da apresentação:  19/06/2024 ","","","","Sugere, à Excelentíssima Ministra da Saúde, sra. Nísia Verônica Trindade Lima, indicação em que propõe a inclusão da Estimulação Magnética Transcraniana (EMT) na lista de procedimentos do Sistema Único de Saúde (SUS). ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"INC 631/2024 ","INC 631/2024 
Autor: Aureo Ribeiro - SOLIDARI/RJ
Data da apresentação:  19/06/2024 ","","","","Sugere, à Excelentíssima Ministra da Saúde, sra. Nísia Verônica Trindade Lima, indicação em que propõe a inclusão do câncer colorretal nas atividades da campanha do Outubro Rosa. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"RIC 1853/2024 ","RIC 1853/2024 
Autor: Aureo Ribeiro - SOLIDARI/RJ
Data da apresentação:  19/06/2024 ","","","","Requer informação ao Ministério da Saúde acerca das recentes notícias sobre a falta de infraestrutura e de leitos para atender crianças e os “improvisos” de médicos para salvar bebês recém-nascidos. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"RIC 1851/2024 ","RIC 1851/2024 
Autor: Saúde
Data da apresentação:  19/06/2024 ","","","","Requer que sejam solicitadas informações ao Ministério da Saúde a respeito da regulamentação da Lei nº 14.758, de 2023, que dispõe sobre a Política Nacional de Prevenção e Controle do Câncer no âmbito do Sistema Único de Saúde - SUS. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"RIC 1848/2024 ","RIC 1848/2024 
Autor: David Soares - UNIÃO/SP
Data da apresentação:  19/06/2024 ","","","","Requer, nos termos do art. 50, §2°, da Constituição Federal e art. 116 do Regimento Interno da Câmara dos Deputados, informação do Ministério da Saúde sobre medicamentos de alto custo. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"RIC 1796/2024 ","RIC 1796/2024 
Autor: Capitão Alberto Neto - PL/AM
Data da apresentação:  18/06/2024 ","","","","Requer da Excelentíssima Ministra da Saúde, Senhora Nísia Trindade, informações sobre a Síndrome de Dumping pós-bariátrica. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"
"RIC 1795/2024 ","RIC 1795/2024 
Autor: Capitão Alberto Neto - PL/AM
Data da apresentação:  18/06/2024 ","","","","Requer da Excelentíssima Ministra da Saúde, Senhora Nísia Trindade, informações sobre a antecipação de partos no Brasil. ","karlla.magalhães","Câmara dos Deputados","Não","Relevante","2024"

这就是我在 csv 中的预期输出:

在此输入图片描述

php phpexcel xls phpoffice phpoffice-phpspreadsheet
1个回答
0
投票

您可以尝试在之前(一次)添加额外的列,如下所示:

$header[] = 'URL';
$header[] = 'ID < 1000000';
$header[] = 'ID >= 1000000';
fputcsv($csvFile, $header);

对于每一行,验证单元格是否具有hiperlink,之后您可以提取URLID

foreach ($sheet->getRowIterator(2) as $row) {
    $cellIterator = $row->getCellIterator();
    $cellIterator->setIterateOnlyExistingCells(true);

    $rowData = [];
    $url = '';
    $id = '';

    foreach ($cellIterator as $cell) {
        if (!is_null($cell)) {
            $value = $cell->getCalculatedValue();
            $rowData[] = $value;

            if ($cell->hasHyperlink()) {
                $hyperlink = $cell->getHyperlink();
                $url = $hyperlink->getUrl();
                $id = extractIdFromUrl($url);
            }
        }
    }

    // Adiciona a URL e os IDs às colunas apropriadas
    $rowData[] = $url;
    if (!empty($id) && $id < 1000000) {
        $rowData[] = $id;
        $rowData[] = '';
    } else if (!empty($id) && $id >= 1000000) {
        $rowData[] = '';
        $rowData[] = $id;
    } else {
        $rowData[] = '';
        $rowData[] = '';
    }

    fputcsv($csvFile, $rowData);
}

之后我认为你的代码将像上面这样:

<?php

require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\IOFactory;

function extractIdFromUrl($url) {
    if (strpos($url, 'senado.leg.br') !== false) {
        preg_match('/\/materia\/(\d+)$/', $url, $matches);
        if (!empty($matches[1])) {
            return $matches[1];
        }
    }

    if (strpos($url, 'camara.leg.br') !== false) {
        preg_match('/\?idProposicao=(\d+)$/', $url, $matches);
        if (!empty($matches[1])) {
            return $matches[1];
        }
    }

    return '';
}

function readData($arquivo){
    $reader = IOFactory::createReader("Xls");
    $spreadsheet = $reader->load($arquivo);
    $sheet_count = $spreadsheet->getSheetCount();
    $csvFileName = 'output.csv';
    $csvFile = fopen($csvFileName, 'w');
    
    for ($i = 0; $i < $sheet_count; $i++) {
        $sheet = $spreadsheet->getSheet($i);

        $headerRow = $sheet->getRowIterator(1)->current();
        $cellIterator = $headerRow->getCellIterator();
        $cellIterator->setIterateOnlyExistingCells(false);

        $header = [];
        foreach ($cellIterator as $cell) {
            if (!is_null($cell)) {
                $value = $cell->getCalculatedValue();
                $header[] = $value;
            }
        }

        // Adiciona as novas colunas ao cabeçalho
        $header[] = 'URL';
        $header[] = 'ID < 1000000';
        $header[] = 'ID >= 1000000';
        fputcsv($csvFile, $header);

        foreach ($sheet->getRowIterator(2) as $row) {
            $cellIterator = $row->getCellIterator();
            $cellIterator->setIterateOnlyExistingCells(true);

            $rowData = [];
            $url = '';
            $id = '';

            foreach ($cellIterator as $cell) {
                if (!is_null($cell)) {
                    $value = $cell->getCalculatedValue();
                    $rowData[] = $value;

                    if ($cell->hasHyperlink()) {
                        $hyperlink = $cell->getHyperlink();
                        $url = $hyperlink->getUrl();
                        $id = extractIdFromUrl($url);
                    }
                }
            }

            // Adiciona a URL e os IDs às colunas apropriadas
            $rowData[] = $url;
            if (!empty($id) && $id < 1000000) {
                $rowData[] = $id;
                $rowData[] = '';
            } else if (!empty($id) && $id >= 1000000) {
                $rowData[] = '';
                $rowData[] = $id;
            } else {
                $rowData[] = '';
                $rowData[] = '';
            }

            fputcsv($csvFile, $rowData);
        }
    }

    fclose($csvFile);
    echo "CSV file generated: $csvFileName";
}

if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_FILES['arquivo'])) {
    $route = $_FILES['arquivo']['tmp_name'];
    readData($route);
}
?>
© www.soinside.com 2019 - 2024. All rights reserved.