Word (.docx), Excel (.xlsx / .csv), PowerPoint (.pptx) ve düz metin dosyalarını
görüntüleyen ve düzenleyen, PDF'i görüntüleyen masaüstü uygulaması.
Electron tabanlı, tek pencerede sekmeli çalışır, arayüz tamamen Türkçedir.
Windows, macOS ve Linux için paketlenir.
Microsoft Office kurulu olmasa da çalışır. Ürettiği dosyalar gerçek Word, Excel ve PowerPoint ile açılıp doğrulanmıştır (bkz. Testler).
npm install # bağımlılıklar
npm run icon # assets/icon.png + icon.ico üretir (bir kez yeterli)
npm start # uygulamayı çalıştırırKurulabilir sürüm üretmek için:
npm run dist # Windows: NSIS kurulumu + taşınabilir exe
npm run dist:portable # Windows: yalnızca taşınabilir tek dosya exe
npm run dist:linux # Linux: AppImage + .deb
npm run dist:mac # macOS: .dmg + .zip (x64 ve Apple Silicon)Linux paketi Windows'tan da üretilebilir; macOS paketi yalnızca bir Mac'te üretilebilir (Apple'ın imzalama araçları başka işletim sisteminde çalışmaz).
Yayınlanan sürümler: https://github.com/minerd/exxe/releases
- Kurulum —
Exxe-Office-Setup-<sürüm>.exe: kurulum sırasında klasör seçilebilir, masaüstü ve başlat menüsü kısayolu oluşturur,.docx.xlsx.pptx.pdf.csv.txtuzantılarını uygulamayla ilişkilendirir. - Taşınabilir —
ExxeOffice-Portable-<sürüm>.exe: kurulum gerektirmez, tek dosya.
Uygulama kurulu sürümde açılışta güncelleme denetler; yeni sürüm bulursa arka planda indirir ve kurmadan önce sana sorar (açık belgelerini kaybetmemek için).
Uygulama dijital sertifikayla imzalanmadığı için Windows SmartScreen ilk çalıştırmada uyarı gösterebilir: Ek bilgi → Yine de çalıştır. macOS'ta da aynı sebeple Gatekeeper uyarı verir: Sağ tık → Aç.
Uygulamanın tamamı üç platformda da aynı çalışır; yalnız işletim sistemi görgü kuralları farklıdır:
- macOS: kısayollarda
Ctrlyerine⌘(menüler ve yardım penceresi bunu kendisi gösterir), ilk menü uygulama adını taşır (Hakkında / Gizle / Çık orada), pencereyi kapatmak uygulamayı kapatmaz — Dock'tan yeniden açılır. - Linux: AppImage çalıştırılabilir dosyadır (
chmod +x),.debpaketi masaüstü girdisini ve dosya türü ilişkilendirmelerini kurar. - Yazı tipleri: Belgeler Calibri ile yazılır; bu yazı tipi yalnızca Windows'ta
bulunur. Öteki platformlarda ölçü uyumlu Carlito (varsa), yoksa sistem yazı tipi
kullanılır — metin akışı korunur, harf şekilleri az miktarda değişebilir.
Linux'ta
fonts-crosextra-carlitopaketini kurmak birebir görünüm verir. - Yazım denetimi işletim sisteminin sözlüğünü kullanır; Türkçe sözlük yüklü değilse denetim sessizce kapanır.
| Metin biçimi | Kalın, italik, altı/üstü çizili, üst/alt simge, yazı tipi, punto, yazı rengi, vurgu rengi, harf düzeni (BÜYÜK / küçük / Her Sözcük / Cümle — Türkçe i-İ kurallarıyla) |
| Paragraf | Başlık 1–4, normal, alıntı, kod; sola/ortaya/sağa/iki yana hizalama; paragraf penceresi: satır aralığı, paragraf öncesi/sonrası boşluk, sol-sağ ve ilk satır girintisi (asılı girinti dahil), gölgelendirme |
| Listeler | Madde işaretli ve numaralı, iç içe (9 düzeye kadar) |
| Tablolar | Ekleme, hücre birleştirme (yatay/dikey), kenarlık, hücre dolgusu, sütun genişliği, hücre içi hizalama, Tab ile hücre gezinme |
| Nesneler | Resim ekleme (dosyadan veya panodan yapıştırarak), metin kutusu / şekil (dikdörtgen, yuvarlatılmış, elips; dolgu ve kenarlık rengi), köprü, sayfa sonu, simge ekleme (₺ € © → ½ α … 60'tan fazla karakter) |
| Sayfa | Üstbilgi ve altbilgi (metin, hizalama, otomatik sayfa numarası); sayfa yapısı: kağıt boyutu (A4, A5, A3, Letter, Legal, özel), dikey/yatay yön, kenar boşlukları (hazır takımlar veya elle, cm) |
| Gözden geçirme | Yorumlar (yan panelde okunur, eklenir, silinir), değişiklik izleme işaretleri (eklenen altı çizili, silinen üstü çizili) ve tümünü kabul et / reddet |
| Diğer | Bul ve değiştir, yakınlaştırma, kelime/karakter sayacı, PDF dışa aktarma, yazdırma, A4 sayfa görünümü |
| Izgara | Sanal kaydırma (büyük sayfalarda akıcı), sütun/satır boyutlandırma, bölmeleri dondurma, hücre birleştirme |
| Düzenleme | Hücre içi düzenleme, formül çubuğu, çoklu seçim, sürükleyerek seçim, satır/sütun ekleme-silme-gizleme/gösterme, tek sütuna göre sıralama ve üç sütuna kadar çok anahtarlı sıralama |
| Veri | Kendi verinize filtre kurma / kaldırma, değere göre süzme, yinelenenleri kaldırma, metni sütunlara bölme, Hedef Ara (formül sonucundan geriye doğru değer bulma) |
| Yazdırma | Yazdırma alanı, her sayfada yinelenen başlık satırları, dikey/yatay yön, bir sayfa genişliğine sığdırma |
| Ek bilgi | Hücre açıklaması (ekle / düzenle / sil; köşe üçgeniyle gösterilir), köprü ekleme (Ctrl+tıkla tarayıcıda açar) |
| Dolgu tutamacı | Seçimin sağ alt köşesinden sürükleyerek doldurma: aritmetik seri (1, 3 → 5, 7, 9), tarih serisi, ay ve gün adları, "Ürün 1 → Ürün 2", formüllerin göreli kaydırılması |
| Biçim | Kalın/italik/altı çizili, yazı tipi ve punto, yazı ve dolgu rengi, kenarlıklar, yatay ve dikey hizalama, hücre girintisi, metin kaydırma, sayı biçimleri (para ₺/$/€, yüzde, tarih, bilimsel, metin) ve kendi yazdığınız özel biçim kodu (0,00 "kg" gibi, canlı önizlemeli) |
| Dosyadan gelen kurallar | Koşullu biçimlendirme (hücre kuralları, metin kuralları, formül, ilk/son N, ortalama üstü, yinelenen, renk ölçeği, veri çubuğu), tablo stilleri (başlık + şeritli satır), veri doğrulama açılır listesi (Alt+↓), otomatik filtre düğmeleri ve değere göre süzme |
| Formüller | 140'tan fazla fonksiyon; döngüsel başvuru koruması; çoklu sayfa başvurusu (Sayfa2!A1) |
| Grafikler | Dosyadaki grafikler çizilir (sütun, çubuk, çizgi, alan, pasta, halka); seçimden yeni grafik oluşturma ve kaldırma — oluşturulan grafik canlı hücrelere bağlı olarak dosyaya yazılır |
| Özet tablo | Seçimden satır/sütun alanına göre gruplayıp toplam, sayı, ortalama, en büyük, en küçük hesaplar; sonuç yeni bir sayfaya yazılır |
| Diğer | Çoklu sayfa (ekle/çoğalt/yeniden adlandır/sil), pano (Excel ile karşılıklı kopyala-yapıştır), bul ve değiştir, seçim istatistikleri (toplam/ortalama/en az/en çok), geri al–yinele |
| Slaytlar | Ekleme (başlık / başlık+içerik / boş düzen), çoğaltma, silme, sürükleyerek sıralama, küçük resimli slayt paneli |
| Metin | Metin kutusu ekleme, yerinde düzenleme (çift tıklama), kalın/italik/altı çizili, yazı tipi, punto, yazı rengi, hizalama, madde işaretli ve numaralı liste, 9 düzeye kadar girinti |
| Nesneler | Resim ekleme, tablo ekleme ve hücre düzenleme, şekil ekleme (dikdörtgen, yuvarlatılmış dikdörtgen, elips, üçgen, eşkenar dörtgen, ok, yıldız, çizgi, oklu çizgi — içine metin yazılabilir), şekil dolgusu, öne getir / arkaya gönder, sürükleyerek taşıma ve köşeden boyutlandırma, ok tuşlarıyla kaydırma |
| Slayt gösterisi | F5 ile tam ekran sunum: ok tuşları/tıklama ile gezinme, N konuşmacı notları, B/W ekranı karartma-beyazlatma, Esc çıkış |
| Tasarım | Asıl slayt tasarımı: arka plan, metin ve vurgu renkleri, başlık/gövde yazı tipi ve puntosu — sunumun temasına yazılır, PowerPoint'te asıl slayt olarak görünür |
| Diğer | Slayt arka plan rengi (tek slayt veya tümü), konuşmacı notları, bul ve değiştir, geri al–yinele, pencereye sığdır, PDF dışa aktarma, yazdırma |
Kodlama otomatik algılanır (BOM, UTF-8, UTF-16, eski Türkçe ANSI/Windows-1254). Satır numarası, satır kaydırma, satır/sütun göstergesi, satır sonu (CRLF/LF) ve kaydetme kodlaması (UTF-8, BOM'lu UTF-8) seçimi, tarih-saat ekleme, bul ve değiştir.
Chromium'un yerleşik görüntüleyicisiyle açılır: sayfa gezinme, yakınlaştırma, arama ve yazdırma görüntüleyicinin kendi araçlarıyla yapılır. Sayfa içeriği düzenlenemez; "Kopyasını kaydet" ile dosyanın kopyası oluşturulabilir.
Sayfa düzeyinde araçlar vardır ve hepsi yeni bir dosya üretir, açık dosyaya dokunmaz:
başka PDF'lerle birleştirme, sayfa ayıklama (1-3,7,10-), tüm sayfaları döndürme ve
sayfaları düzenleme — istenmeyen sayfaları çıkarma ve sırayı değiştirme. Sayfa
düzenleme listesi küçük resim göstermez, sayfa numaralarıyla çalışır.
Formül yazımı. Argüman ayracı olarak hem , hem ; kabul edilir; ondalık ayracı .
olmalıdır (=ROUND(3.14;1)). Fonksiyon adları Türkçe yazılabilir — TOPLA, EĞER,
DÜŞEYARA, EĞERSAY, ORTALAMA, ÇOKETOPLA gibi ~70 karşılık tanınır. Dosyaya
kaydederken hepsi otomatik olarak İngilizce ada ve , ayracına çevrilir; bu, dosya
biçiminin zorunlu kıldığı tek gösterimdir.
F1 tuşu uygulama içinde tam listeyi gösterir. Sık kullanılanlar:
| Kısayol | İşlev |
|---|---|
Ctrl+N / Ctrl+Shift+N |
Yeni Word / Excel belgesi |
Ctrl+Alt+N / Ctrl+Alt+T |
Yeni sunum / metin belgesi |
Ctrl+O · Ctrl+S · Ctrl+Shift+S |
Aç · Kaydet · Farklı kaydet |
Ctrl+F · Ctrl+P · Ctrl+W |
Bul ve değiştir · Yazdır · Sekmeyi kapat |
Ctrl+Tab · Ctrl+1…9 |
Sekmeler arası geçiş |
Ctrl+D · Ctrl+± |
Koyu/açık tema · Yakınlaştırma |
F2 (Excel) |
Hücreyi düzenle |
Ctrl+Ok (Excel) |
Dolu alanın kenarına atla |
F5 · Shift+F5 (Sunum) |
Slayt gösterisi · Bu slayttan başlat |
Ctrl+M · Ctrl+Shift+D (Sunum) |
Yeni slayt · Slaydı çoğalt |
PageUp / PageDown (Sunum) |
Önceki / sonraki slayt |
Çift tıklama veya F2 (Sunum) |
Metin kutusunu düzenle (Esc ile çık) |
Dosyaları pencereye sürükleyip bırakarak da açabilirsiniz.
Word belgesine {{Ad}}, {{Soyad}} gibi yer tutucular yaz, şeritten birleştirme
düğmesine bas ve sütun başlıkları bu adlarla eşleşen bir Excel/CSV dosyası seç. Çıktı üç
biçimde alınabilir: tek belgede (her kayıt yeni sayfada), her kayıt için ayrı .docx,
ya da her kayıt için ayrı PDF. Veride karşılığı olmayan alanlar boş bırakılır ve
birleştirmeden önce uyarı verilir.
Word görünümünde karşılaştırma düğmesi, açık belgeyi seçtiğin başka bir .docx ile
paragraf paragraf karşılaştırır; eklenen ve silinen paragrafları renkli listeler.
Karşılaştırma metin düzeyindedir, biçim farklarını kapsamaz.
Excel'de bir aralık seçip sunum düğmesine bastığında başlık slaydı ve tablo slaytlarından oluşan yeni bir sunum açılır (sayfa başına 10 satır).
node tools/convert.js "C:\Belgeler\*.docx" --to pdf
node tools/convert.js "C:\Belgeler" --to txt --out "C:\cikti"
node tools/convert.js rapor.xlsx --to csv --overwrite| Kaynak | Hedef |
|---|---|
.docx |
pdf, txt |
.pptx |
pdf, txt |
.xlsx |
pdf, csv |
.csv |
xlsx |
Girdi olarak dosya, klasör veya joker (*.docx) verilebilir. Özgün dosyalara yalnızca
okuma erişilir; --overwrite verilmedikçe var olan çıktının üzerine yazılmaz.
Beklenmedik bir hata olursa kaydı %APPDATA%\Exxe Office\gunlukler\ altına yazılır.
Yardım → Hata Günlüğünü Göster menüsü dosyayı doğrudan açar. Günlüğe yalnızca hata
metni ve sürüm bilgisi girer; belgelerinizin içeriği yazılmaz. 14 günden eski kayıtlar
kendiliğinden silinir.
Kurulu sürümde bu kayıtlar aynı zamanda geliştiriciye gönderilir; böylece çökmeler siz bildirmeden görülür ve düzeltilir. Gönderilen bilgi günlüğe yazılanla aynıdır: hata metni, yığın izi, uygulama sürümü, işletim sistemi ve kuruluma özel rastgele bir kimlik. Belgelerinizin içeriği, dosya adları ve klasör yollarınız gönderilmez (yollar gönderim öncesi maskelenir). Ağ yoksa hiçbir uyarı çıkmaz; gönderim başarısızlığı uygulamayı etkilemez.
Kapatmak isterseniz uygulamayı EXXE_HATA_GONDER=0 ortam değişkeniyle başlatın.
Kaydedilmemiş belgeler 25 saniyede bir arka planda taslak olarak diske yazılır. Uygulama çökerse veya bilgisayar beklenmedik şekilde kapanırsa, bir sonraki açılışta kurtarma teklif edilir ve belgeler sekme olarak geri gelir. Belge kaydedildiğinde, sekmesi kapatıldığında veya uygulama normal şekilde kapatıldığında taslak silinir.
Bunlar bilinçli olarak kapsam dışıdır; dosyayı kaydederken veri kaybına yol açabilecekleri için burada açıkça belirtiliyor:
Var olan bir dosyayı kaydederken uygulama özgün paketi korur ve yalnızca değiştirdiğiniz bölümü yeniden yazar. Bu sayede aşağıdakiler düzenlemediğiniz sürece dosyada kalır: Word'de üstbilgi/altbilgi, dipnot, tema, yazı tipi ve belge ayarları; PowerPoint'te tema, asıl slayt, düzenler, geçişler, gömülü yazı tipleri ve dokunmadığınız slaytların tamamı (grafikleri dahil). Düzenlediğiniz slaytta bile grafik ve SmartArt çerçeveleri taşınır.
Excel'de grafikler, koşullu biçimlendirme, veri doğrulama, tablolar, açıklamalar, otomatik filtre ve adlandırılmış aralıklar korunur. Açıklamalar dışındakiler ekranda da gösterilir; açıklamalar hücrenin köşe üçgeninden ve ipucu balonundan okunur, ayrıca eklenip düzenlenebilir.
Yine de bu öğeler görüntülenmez ve düzenlediğiniz kısımda kaybolabilir:
- Eski ikili
.docve.pptaçılamaz. Bu dosyaları önce Word/PowerPoint veya LibreOffice ile.docx/.pptxolarak kaydedin. (Eski Excel.xlsve.xlsbaçılır: içerik okunur, biçimlendirme sadeleşir ve kaydederken.xlsxistenir.) - Word'de metin kutuları ve şekiller okunur, düzenlenir ve yazılır (metin, dolgu, kenarlık; dikdörtgen / yuvarlatılmış / elips). Ancak şekil satır içine yerleşir: kayan konum, metin sarma, döndürme ve gölge korunmaz. Gövdeye yerleştirilmiş grafikler düzenleyicide görünmez ve düzenlediğiniz kısımda düşer. Üstbilgi/altbilgi düzenlenebilir, ancak içinde tablo veya resim varsa düzenlediğiniz anda sade metne dönüşür (dokunmazsanız olduğu gibi korunur).
- Excel'de grup/alt toplam anahattı ve ad yöneticisi yoktur. Adlandırılmış aralıklar korunur ama düzenlenemez.
- Excel'de canlı pivot tablolar ve makrolar düşer; dizi formülleri (
CSE) ve dış bağlantılar hesaplanmaz. ("Özet Tablo" aracı canlı PivotTable üretmez, hesaplanmış hücreler yazar — kaynak veri değişince özeti yeniden oluşturmanız gerekir.) Desenli ve degrade dolgular düz renge yaklaştırılır, metin döndürme yatay gösterilir, simge kümeleri (koşullu biçimlendirmede) çizilmez. - Word'de son not düzenlediğiniz kısımda düşer. Yorumlar ve değişiklik izleme korunur ve gösterilir, ancak yazarken yeni değişiklik izleme kaydı üretilmez (var olan işaretler korunur, kabul/reddet edilebilir).
- Sunumda animasyonlar ve ses/video, düzenlediğiniz slaytta korunmaz (dokunmadığınız slaytlarda kalır).
- PDF'in içeriği düzenlenemez (metin, resim, form alanı); yalnızca görüntülenir. Sayfa düzeyindeki araçlar (birleştir / ayıkla / döndür / sırala-sil) yeni dosya üretir.
- Sunuma eklenen şekiller hazır geometrilerle sınırlıdır; serbest çizim, gölge, degrade ve şekil döndürme yoktur. Dosyadan gelen tanımadığımız şekiller ekranda dikdörtgen görünür ama kaydederken özgün geometrileri korunur.
Kritik bir dosyada çalışıyorsanız yine de "Farklı kaydet" ile kopya üzerinden ilerlemek en güvenlisidir.
src/
main/ Electron ana süreç (Node)
main.js pencere, menü, IPC, PDF dışa aktarma
preload.js contextBridge ile güvenli API (contextIsolation açık)
excel-io.js ExcelJS ile .xlsx okuma/yazma, elle yazılmış CSV çözümleyici
store.js userData/settings.json ayar deposu
menu.js Türkçe uygulama menüsü
renderer/ arayüz (Node erişimi yok, CSP kısıtlı)
js/docx.js DOCX okuyucu + yazıcı (OOXML doğrudan işlenir)
js/pptx.js PPTX okuyucu + yazıcı (PresentationML)
js/formula.js formül çözümleyici ve hesaplayıcı
js/excel.js sanal kaydırmalı hesap tablosu ızgarası
js/word.js zengin metin düzenleyici
js/slide.js sunum düzenleyici (slayt paneli, tuval, şekiller)
js/text.js düz metin görüntüleyici (kodlama algılama, satır numarası)
js/pdf.js PDF görüntüleyici (Chromium yerleşik eklentisi)
js/app.js sekmeler, dosya işlemleri, bul/değiştir
js/util.js sayı/tarih biçimlendirme, hücre adresleri, modal
tools/ ikon üretici, testler, Office doğrulaması
Her belge türü aynı denetleyici sözleşmesini uygular (mount / unmount / command /
setZoom); app.js sekmeleri bu haritadan çözer.
Birkaç tasarım kararı:
- Excel ana süreçte, Word renderer'da işlenir. ExcelJS bir Node kütüphanesidir ve
ana süreçte yerel olarak çalışır; açılan çalışma kitabının nesnesi bellekte tutulur,
kaydederken aynı nesne güncellenir — böylece arayüze taşımadığımız ama ExcelJS'in
anladığı öğeler (tanımlı adlar, yazdırma alanları, otomatik filtre) korunur. DOCX ise
renderer'da işlenir; orada
DOMParserhazır olduğu için ek XML bağımlılığı gerekmez. - Var olan dosyalar yerinde güncellenir. Kaydetme, dosyayı sıfırdan üretmek yerine özgün
paketi açıp yalnızca değiştirdiğiniz bölümü yazar. Word'de üstbilgi/altbilgi başvurularını
taşıyan
sectPrkorunur; PowerPoint'te dokunulmayan slaytlar bit bit aynı kalır. Böylece uygulamanın hiç anlamadığı öğeler (tema, grafik, gömülü yazı tipi, geçiş) dosyada kalır. Bu davranış gerçek Word ve PowerPoint ile doğrulanıyor. - DOCX/PPTX için hazır dönüştürücü kullanılmadı. Yaygın kütüphaneler kalın/italik dışındaki biçimlendirmeyi (renk, punto, hizalama, girinti, tablo kenarlığı) düşürüyor ve aç–kaydet döngüsünde belge bozuluyor. OOXML doğrudan işlenerek gidiş-dönüş korunuyor.
- OOXML öğe sırası şemayla zorunludur.
w:rPr,w:tcPr,a:rPr,p:spgibi kapların çocukları belirli sırada olmalı; sıra bozulursa Word/PowerPoint dosyayı açmayı reddeder. Bu sıratools/smoke-render/test.jsiçinde otomatik denetlenir. - Sunumda yer tutucu konumları dosyaya açıkça yazılır. Okurken konum, düzen ve asıl slayttan miras alınır; yazarken her şeklin konumu kendi içine yazılır. Böylece dosya kendi düzen şablonuna bağımlı kalmaz.
- PDF için ayrı bir kütüphane paketlenmedi. Chromium'un yerleşik görüntüleyicisi bir çerçeve içinde kullanılır; uygulama boyutu ve güvenlik yüzeyi büyümez.
npm run lint # ESLint
node tools/smoke-excel.js # 31 test — Excel katmanı (düz Node)
npx electron tools/smoke-render/main.js # 368 test — DOCX, PPTX, yerinde güncelleme, formül, güvenlik
node tools/capture.js # arayüzü sürer, ekran görüntüsü alır, komutları tarar
powershell -File tools/verify-office.ps1 # 65 test — GERÇEK Office ile doğrulama
node tools/regression.js # diskteki gerçek dosyalarla aç→kaydet→aç turuSonuncusu bilgisayarınızdaki gerçek .docx / .xlsx / .pptx dosyalarını bulup açar,
kaydeder ve tekrar açar; ne kaybolduğunu ölçer. Özgün dosyalarınıza yalnızca okuma
erişimi olur, çıktılar geçici klasöre yazılır ve rapora belge metniniz değil yalnızca
sayısal ölçümler girer.
Son doğrulama, üretilen dosyaları COM üzerinden Microsoft Word, Excel ve PowerPoint'te
açar: Word ve PowerPoint dosyayı onarmadan açar, Excel formülleri kendisi yeniden
hesaplayıp aynı sonuçları üretir. Bu adım tools/capture.js çıktısını kullandığı için
önce onu çalıştırın. tools/smoke-render çıktısı ayrıca
F:\tmp\exxe_smoke\render-results.txt dosyasına yazılır (Windows'ta Electron GUI
süreci konsola yazamadığı için).