Exceldeki ingilizce kelimeleri türkçeye çeviren php kodu

Sponsorlu Bağlantılar

Exceldeki ingilizce kelimeleri türkçeye çeviren php kodu

Exceldeki ingilizce kelimeleri türkçeye çeviren php kodu nedir ? Neden ihtiyac duydum ?

Elimde bir sürü phrasal verb liste oldugu bir excel dosyası vardı. Bu kelimelerin türkçelerini basit bir şekilde nasıl elde ederim sorusundan bu proje ortaya çıktı.

İsterseniz hızlıca projemize başlayalım

Öncelikle aşagıdaki linkden gerekli kodu elde ediyoruz.
https://phpspreadsheet.readthedocs.io/en/develop/

ben composer yardımıyla indirme işlemini yaptım. Composer yükleme işleminin talep ederseniz yorumlarda belirtin. Composer nedir ? nasıl kullanılır ? farklı bir yazıda anlatırım.


komut istemcisine “composer require phpoffice/phpspreadsheet” yazarak projeyi bilgisayarınıza kurabilirsiniz. Bu class excel işlemleri için bize çok fazla kolaylık tanıyacak.

daha sonra Phrasal verbs.xlsx adında bir excel dosyası oluşturun. Şablon aşagıdaki gibi olsun.


English Türkçe
.             .
.             .
.             .
.             .
.             .
.             .

Algoritmadan bahsetmek istiyorum biraz.


1. Excell class ına bağlan

<? php

    require 'vendor/autoload.php';   
    use PhpOffice\PhpSpreadsheet\Spreadsheet;
    use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
     
$spreadsheet = new Spreadsheet();  

?>

2. Phrasal Verbs.xlsx dosyası var mı ? yok mu ? yoksa durdur.

<? php
 
if (!file_exists("Phrasal Verbs.xlsx")){
    exit("Phrasal Verbs dosyası bulunamadı.Lütfen Dosyayı ekleyiniz.");
}

?>

3. Excel dosyasını oku.

<? php

$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load("Phrasal Verbs.xlsx");

?>

4. A2:A158 arasındaki tüm dataları bir dizi de topla

<? php

$dataArray = $spreadsheet->getActiveSheet()
	->rangeToArray(
'A2:A158',     
NULL,        
TRUE,       
TRUE,        
TRUE        
    );

?>

5. Dizi eleman sayısını say.

<? php

$dataArraysayisi = count($dataArray);  

?>

6. Herbir satırdaki data ile işlem yapabilmek için For döngüsü kullan

<? php

for($i = 2; $i<159 ; $i++){

?>

7. Tureng.com a bağlanıp ingilizce kelimemizin türkçesini arattırdık.

<? php

$baglan = file_get_contents("https://tureng.com/tr/turkce-ingilizce/".$dataArray[$i]["A"]);

?>

8. İhtiyacımız olan ingilizce kelimenin türkçesini elde ettik.

<? php

preg_match_all('@<td class="tr ts" lang="tr"><a href="(.*?)">(.*?)</a> </td>@si',$baglan,$turkce);
				
		$b_column = "B".$i;
		$turkcesi = html_entity_decode($turkce[2][0]);

?>

9. Elde ettiğimiz kelimeyi excelde istediğimiz bir hücreye tanımladık.

<? php 

$sheet = $spreadsheet->getActiveSheet();
	$sheet->setCellValue($b_column, $turkcesi);

?>

10. Tanımladıgımız hücreye türkçeye çevrilmiş kelimemizi Phrasal Verbs.xlsx dosyasına yazdık.

<? php 

$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$writer->save("Phrasal Verbs.xlsx");

?>

11. Toplamak gerekirse kodun hepsi aşagıdaki gibidir.

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
set_time_limit(0);
	require 'vendor/autoload.php';

		use PhpOffice\PhpSpreadsheet\Spreadsheet;
		use PhpOffice\PhpSpreadsheet\Writer\Xlsx;


$spreadsheet = new Spreadsheet();

			if (!file_exists("Phrasal Verbs.xlsx")){
			exit("Phrasal Verbs dosyası bulunamadı.Lütfen Dosyayı ekleyiniz.");
			}// çalıştıgımız dizinde yükleyeceğimizin varlıgını sorguladık.			
     
	$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load("Phrasal Verbs.xlsx"); //excel dosyasını php ye yükledik

	$dataArray = $spreadsheet->getActiveSheet() // belli bir aralıktaki exce dosyasındaki veriyi array şeklinde aldık.
		->rangeToArray(
			'A2:A158',     // The worksheet range that we want to retrieve
			NULL,        // Value that should be returned for empty cells
			TRUE,        // Should formulas be calculated (the equivalent of getCalculatedValue() for each cell)
			TRUE,        // Should values be formatted (the equivalent of getFormattedValue() for each cell)
			TRUE         // Should the array be indexed by cell row and cell column
    );



		$dataArraysayisi = count($dataArray);   // arrayde kaç tane eleman oldugunu öğrendik

	for($i = 2; $i<159 ; $i++){
	
			$baglan = file_get_contents("https://tureng.com/tr/turkce-ingilizce/".$dataArray[$i]["A"]);
			preg_match_all('@<td class="tr ts" lang="tr"><a href="(.*?)">(.*?)</a> </td>@si',$baglan,$turkce);
				
					$b_column = "B".$i;
					$turkcesi = html_entity_decode($turkce[2][0]);


	$sheet = $spreadsheet->getActiveSheet();
	$sheet->setCellValue($b_column, $turkcesi);

			echo $i." sıradaki <b>$turkcesi<b> kelimesi yazıldı.";
			echo "<br>";
			
	$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
	$writer->save("Phrasal Verbs.xlsx");

}

?>

 

 

Proje bu kadardı. Umarım işinize yarar. 🙂

 

Sponsorlu Bağlantılar

One Reply to “Exceldeki ingilizce kelimeleri türkçeye çeviren php kodu”

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir