1
2016
JAVA ile Otomatik Word Dokümanı Oluşturma
JAVA ile otomatik olarak word dokumanları oluşturmanız gerekirse, hatta JAVA ile MS office programları ile iligli herhangi bir işlem yapmanız gerektiğinde sizlere Apache POI kütüphanesini kullanmanızı şiddetle tavsiye ederim. POI kütüphanesi JAVA ile MS Office programları üzerinde (word, excel, etc.) işlem yapmanızı oldukça kolaylaştırmaktadır.
Bu örneğimizde parametlerimizi bir text dokümanından alıp, otomatik olarak parametrelerimizin yani text dokümanımızdaki değerlerimizin adeti kadar word dokümanı oluşturacağız. İsterseniz text dokümanı yerine bir excel dosyasını da okuyarak bu işlemi yapabilirsiniz. Ben kolaylık olması adına text dokumanından değerleri okumayı tercih ettim. İleride excel işlemlerini de anlatacak bir örneği sizlerle paylaşacağım.
Nesne Tabanlı Programlama (Object Oriented Design) prensibi ile kodumuzu yazmamız ileride kod üzerinde değişiklikler yapmamızda bize kolaylık sağlayacak ve kodumuz oldukça mödüler olacaktır. Ben kodu 3 parçaya/sınıfa/modüle böldüm. Bunlar:
1) ReadFile Class: Text dokümanındaki değerleri okur ve bunların listesini döner.
2) WordGenerator Class: getLines (değerleriAl) ve createWord (wordDokumanıOluştur) methodlarını içerir. Öncelikle text dokumanındaki değerleri alır ve ardından bu değerleri kullanarak word dokumanlarını oluşturur.
3) Main Class: Programımızı çalıştıracağımız ana sınıfımızdır. WordGenerator sınıfının bir objesini oluşturup, bu obje ile WordGenerator sınıfının createWord methoduna erişerek word dokumanlarını oluşturmamızı sağlar.
ReadFile Sınıfının Kodu:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class ReadFile
{
public List<String> readLines(String filename) throws IOException
{
FileReader fileReader = new FileReader(filename);
BufferedReader bufferedReader = new BufferedReader(fileReader);
List<String> lines = new ArrayList<String>();
String line = null;
while ((line = bufferedReader.readLine()) != null)
{
lines.add(line);
}
bufferedReader.close();
return lines;
}
}
WordGenerator Sınıfının Kodu:
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
public class WordGenerator {
//Text dokumanından değerleri al
public List<String> getLines (String fileName) throws Exception {
//ReadFile instance
ReadFile rf = new ReadFile();
//Text dokümanını oku
try {
List<String> lines = rf.readLines(fileName);
for (String line : lines) {
System.out.println(line);
}
return lines;
} catch (IOException e) {
// Exception oluşursa bunu konsol'a yazdır.
System.out.println("Unable to create " + fileName + ": " + e.getMessage());
throw e;
}
}
//Word dokümanı oluştur.
public void createWord(List<String> lines) throws IOException {
for (String line : lines) {
//Documan objesini yarat.
XWPFDocument document = new XWPFDocument();
//Dokumanı FileSystem de yazdırmaya hazırla
FileOutputStream out = new FileOutputStream(
new File("createdWord" + "_" + line + ".docx"));
//Word'un içerisine yazı yaz.
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run = paragraph.createRun();
run.setText("VK Number (Parameter): " + line + " here you type your text...\n");
document.write(out);
//Dokumanı kapat
out.close();
System.out.println("createdWord" + "_" + line + ".docx" + " written successfully");
}
}
}
Main Sınıfının Kodu:
import java.util.List;
public class Main {
//Ana Sınıf
public static void main(String[] args) throws Exception {
//WordGenerator Sınıfından bir obje oluştur
WordGenerator wg = new WordGenerator();
//VK değerlerini içeren text dokumanının ismini tanımla
String vkFilename = "vk_no.txt";
//VK değerlerini text dokumanınından elde et ve vkLines listesine at
List<String> vkLines = wg.getLines(vkFilename);
//vkLines listesindeki değerler ile word dokumanlarını oluştur.
wg.createWord(vkLines);
}
}
Text Dokümanı İçeriği:
Konsol Çıktıları ve Sonuç:
onur başkırt
etmektedir.Sırasıyla, Arte Bilgisayar (Önyüz Geliştiricisi), Bahçeşehir
Üniversitesi (Araştırma Görevlisi), STMicroelectronics (Çip tasarım ve
doğrulama mühendisi), Huawei (Test Grup Yöneticisi), Ericsson (Test
Lakım Lideri), ve Teknosa’da kıdemli danışman olarak analist, test takım lideri, proje yöneticisi ve şu anda yazılım operasyon müdürü olarak
görev yapmaktadır. Önceleri dijital çip tasarımı konusunda akademik
çalışmaları vardır. Güncel olarak ise yazılım (JAVA ve dinamik diller),
Test Otomasyonu, Performans Testleri gibi teknik test konuları ve Ekip
Yönetimi ve Etkin Liderlik konularında çalışma ve araştırmalarına devam
etmektedir. Kendisi hakkında detaylı bilgileri linkedin sayfasından
edinebilirsiniz.
Latest posts by onur başkırt (see all)
- JAVA ile Otomatik Word Dokümanı Oluşturma - 01 Şubat 2016