Jump to content
  • 0
olucaslima

Importar Planilha Excel no MySQL com PHP

Question

Bom dia, amigos!

Acho que é a minha primeira interação aqui no fórum depois de anos de cadastrado, mas provavelmente o início de uma intensa troca de conhecimento.

É o seguinte;

Eu tenho uma Planilha Excel  pra importar no banco de dados MySQL com o PHP, fiz uns testes de impressão e com uma planilha com poucos campos e linhas imprime numa boa, porém a planilha que preciso importar tem pelo menos 56 campos e pelo menos 1400 linhas. 
Daí pergunto a vocês: Qual o máximo de colunas e linhas de uma planilha Excel, seja xml ou xls, eu consigo imprimir na tela com o PHP e até mesmo importar no banco MySQL?
 

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Diego, obrigado pela atenção!

Então, finalmente consegui imprimir a planilha na tela com a biblioteca PHPExcel, agora preciso de uma aplicação para selecionar o arquivo e enviar as informações para tabela MySQL.
Vou tentar criar uma aplicação com o método POST para inserir na base, postarei as minhas próximas dúvidas, ok?

Muito obrigado pela ajuda! 

Share this post


Link to post
Share on other sites
  • 0
7 horas atrás, Diego-SLP disse:

Sua necessidade é apenas importar o conteudo para o banco ou você quer fazer uma aplicação para fazer esse procedimento?

 

 

Diego, 

 

Agora empaquei!
Consegui colocar pra imprimir na tela com o seguinte código:

<html>
	<head>
		<meta charset="UTF-8">
		<title>CRM Docs</title>
	</head>
	<body>
		<?php
			require_once "Classes\PHPExcel.php";
			
			$tmpfname = "teste.xlsx";
			$excelReader = PHPExcel_IOFactory::createReaderForFile($tmpfname);
			$excelObj = $excelReader->load($tmpfname);
			$worksheet = $excelObj->getSheet(0);
			$lastRow = $worksheet->getHighestRow();
			
			echo "<table>";
			for ($row = 1; $row <= $lastRow; $row++) {
				 echo "<tr><td>";
				 echo $worksheet->getCell('A'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('B'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('C'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('D'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('E'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('E'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('F'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('I'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('H'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('J'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('K'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('L'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('M'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('N'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('O'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('P'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('Q'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('R'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('S'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('T'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('U'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('V'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('X'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('Y'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('Z'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AA'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AB'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AC'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AD'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AE'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AF'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AG'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AH'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AI'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AJ'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AK'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AL'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AM'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AN'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AO'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AP'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AQ'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AR'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AS'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AT'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AU'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AX'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AY'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('AZ'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('BA'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('BB'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('BC'.$row)->getValue();
				 echo "</td><td>";
				 echo $worksheet->getCell('BD'.$row)->getValue();
				 echo "</td><td>";
				 echo "</td></tr>";
			}
			echo "</table>";			
		?>
	</body>
</html>

 

Agora eu preciso chamar quaisquer arquivos XLSX através de um input do tipo file que está escrito na index.php, como no exemplo abaixo: (Sabe como me ajudar?)

 

<html>
	<head>
		<meta charset="UTF-8">
		<title>CRM Docs</title>
	</head>
	<body>
		<h1>CRM Docs</h1>
		<form name="processa" action="processa.php" method="POST" enctype="multipart/form-data">
			<input type="file" name="arquivo" value="">
			<input type="submit" name="Enviar" value="enviar">
		</form>
	</body>
</html>


Desde já agradeço!


Um forte abraço!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Fabio Jonas
      Pessoal, estou precisando retornar o valor total de receita e valor total de despesas por mês nesse estilo:
                      
                           Despesa        Receita
      Janeiro          50.00            200.00
      Fevereiro               0            500.00
      Março           100.00           500.00
       
      Cheguei a essa consulta abaixo mas esta retornando o mesmo valor para todos os mês
      SELECT MONTHNAME(`data_vencimento`) as mes, (SELECT SUM(`valor`) as valor_total FROM lancamentos WHERE tipo = 'despesa' and YEAR(`data_vencimento`) = 2022 AND `empresa` = 1) as despesas, (SELECT SUM(`valor`) as valor_total FROM lancamentos WHERE tipo = 'receita' and YEAR(`data_vencimento`) = 2022 AND `empresa` = 1) as receitas From lancamentos GROUP BY MONTH(`data_vencimento`) ORDER BY MONTH (`data_vencimento`);  
      O Retorno esta assim 
                           Despesa        Receita
      Janeiro          50.00            200.00
      Fevereiro       50.00            200.00
      Março            50.00            200.00
       
      Alguém consegue me ajudar com essa consulta?
      Obrigado
    • By cmoreira1300
      Meu programa não consegue identificar o dotenv na middleware
      Eu estava fazendo um CRUD simples, implementei o dotenv no meu programa, está funcionando quando faço a conexão com o banco de dados e a inserção e uma função normal,  mais quando vou fazer isso dentro de uma middleware ele não chama meu dotenv, só funciona quando tiro o process.env e ponho as informações direto na função de conexão.
      require( 'dotenv' ).config( { path: '../../.env' } ) const mysql = require( 'mysql2' ) // DESSA FORMA NÃO FUNCIONA const connection_pool = mysql.createPool( { host: process.env.DB_HOST, user: process.env.DB_USER, database: process.env.DB_DATABASE, password: process.env.DB_PASS } ) // DESSA FORMA FUNCIONA // const connection_pool = mysql.createPool( { // host: 'localhost', // user: 'carlos', // database: 'simple_crud', // password: 'pass1241' // } ) module.exports = connection_pool.promise() INSERÇÃO NO BANCO DE DADOS
      const db_conn = require( '../db/connection' ) const createNewClient = ( name ) => { return db_conn.execute( `INSERT INTO client ( name ) values (?)`, [ name ] ) } module.exports = { createNewClient } FAZENDO A INSERÇÃO NO MIDDLEWARE
      const data = require( '../data/client' ) const createClient = ( req, res, next ) => { const client = req.body.name data.createNewClient( client ) .then( () => { res.status( 200 ).json( { 'status': 'sucess', 'client': client } ) } ) .catch( ( err ) => { res.status( 404 ).json( { status: 'error', error: err } ) } ) .finally( () => { next() } ) } module.exports = { createClient } { "status": "error", "error": { "message": "Access denied for user ''@'localhost' (using password: YES)", "code": "ER_ACCESS_DENIED_ERROR", "errno": 1045, "sqlState": "28000", "sqlMessage": "Access denied for user ''@'localhost' (using password: YES)" } }  Esse é o erro que obtenho quando uso o dotenv, lenbrando que as informações de login estão todas certas, e que em outra função que não seja um middleware funciona.
    • By ROGERIO MOREIRA
      Olá,
       
      preciso gerar listagem do meu banco de dados mas preciso definir um certo item como cabeça na pesquisa:
       
      ex:
      quero listar meus registros em orderm de:
       
      primeiro ESTADO    (ordem alfabetica)
      depois    CIDADE     (ordem alfabetica)
      depois    BAIRRO,    porém, quero colocar CENTRO em primeiro, depois os outros bairros
       
    • By Sapinn
      Estou usando o editor SummerNote em um projeto mas ele não está enviando os dados com o HTML apenas o texto. Eu estou colocando assim:

               
                                        <textarea id="summernote" class="textarea" required name="content">     <script> $('#summernote').summernote({         tabsize: 2,         height: 500,         toolbar: [           ['style', ['style']],           ['font', ['bold', 'underline', 'clear']],           ['color', ['color']],           ['para', ['ul', 'ol', 'paragraph']],           ['table', ['table']],           ['insert', ['link', 'picture', 'video']],           ['view', ['fullscreen', 'codeview', 'help']]         ]       });           </script>  
       
    • By marcelo.ourico
      Boa noite. Pessoal, mais uma vez aqui pedindo uma ajuda.

      Estou tentando enviar uma NFSe via SOAP.

      Estou recebendo o seguinte erro:

      Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Client] ERRO : cvc-complex-type.4: Attribute 'Algorithm' must appear on element 'ns2:CanonicalizationMethod'. in

      O meu Array está da seguinte forma:
      Array
      (
      [CanonicalizationMethod] => Array
      (
      [@attributes] => Array
      (
      [Algorithm] => http://www.w3.org/TR/2001/REC-xml-c14n-20010315
      )
      )

      Não entendi o porque desse erro, alguém sabe ajudar?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.