CSV Editor online

Code

Export

My documents

Click a document to open it. They are stored only in this browser - nothing is uploaded. Clearing the browser's site data removes them, so download the ones you want to keep.

AI Assistant

Any AI can work with you - ChatGPT, Claude, Gemini, Copilot.

  1. Click Copy prompt.
  2. Paste it into your AI and say what it should do with the table.
The AI should

The table travels in the link after the “#”, which no server sees. What you paste into your AI is handled by its provider.

Save to your server

The editor can send each saved version to your own server (a webhook), so your work is kept where you want it. Nothing is sent until you enter an address here.

What your server receives

A POST request with JSON (your server must allow CORS from https://csv.giit.ch):

{ "editor": "csv", "event": "save", "id": "…", "name": "Products",
  "content": "SKU,Product,Price\nA-100,Notebook,4.50\n",
  "updated": "2026-01-15T09:30:00.000Z" }
Embed the editor in your website
<iframe src="https://csv.giit.ch/?embed=1" style="width:100%;height:80vh;border:0"></iframe>
<script>
const frame = document.querySelector('iframe');
addEventListener('message', e => {
  if (e.origin !== 'https://csv.giit.ch' || e.source !== frame.contentWindow) return;
  if (e.data.type === 'csveditor:ready')
    frame.contentWindow.postMessage({ type: 'csveditor:load', name: 'Products',
      content: 'SKU,Product,Price\nA-100,Notebook,4.50\n' }, 'https://csv.giit.ch');
  if (e.data.type === 'csveditor:save') saveOnYourServer(e.data.content);
});
</script>

Also possible: ?src=<URL of a .csv file> opens a file, &webhook=<URL> saves this document there. The editor can also open in a window of its own (?embed=window), and your page can hand it its own AI prompt and a session key so the AI sends its result to your server (csveditor:ai, csveditor:key-request) - see "Use the editor on your own website" below the editor. Details are in llms.txt.

Help

How it works

  1. Open a CSV file, drop it into the window, or start with New. The raw text is on the left, the table in the middle.
  2. Edit cells in the table like in a spreadsheet: type, or press Enter or F2, or double-click a cell. Enter or Tab keeps the value, Escape cancels. The change goes into the CSV text right at that field - quotes only where needed, the line endings stay - and is one step for Undo.
  3. Copy and paste ranges between the table and Excel, LibreOffice or Google Sheets with Ctrl+C and Ctrl+V. Type into the row marked + to add a row.
  4. A click in the table puts the code's cursor on that field; the cursor in the code selects its cell.
  5. Sort with the arrows in the column heads and filter above the table: that only changes the view. Sort the data puts the rows of the file into that order.
  6. Format on the right sets how the text is read (separator, quote, header row) and converts it; Column shows what a column holds; Insert adds, deletes and moves rows and columns and cleans up.
  7. Problems (rows with another number of fields, unclosed quotes, empty or repeated header names) are listed above the code - click one to go there.
  8. Export makes an Excel workbook, JSON, Markdown, HTML, TSV or CSV with another separator. Download .csv saves the text as it is.

Keyboard shortcuts in the table

← → ↑ ↓, Shift + arrows
Move, select a range
Enter / F2 / typing
Edit the cell (typing replaces its value)
Alt + Enter
A line break inside the cell
Tab / Shift + Tab
Next / previous cell
Delete
Empty the selected cells
Ctrl + C / X / V
Copy / cut / paste (tab-separated, as spreadsheets use it)
Ctrl + A
Select the whole table
Ctrl + F
Filter the rows
Ctrl + Z / Y
Undo / redo
Ctrl + S / E
Save (download .csv, or to your server) / export
Ctrl + O
My documents
Ctrl + Enter in the code
Go to the cursor's cell in the table

CSV dosyalarını çevrimiçi düzenleyin, tablo ve metin olarak

CSV Editörü ham CSV'yi ve tabloyu yan yana gösterir. Tabloda bir hücreyi düzenleyin, editör metinde tam o alanı değiştirsin - diğer tırnaklar, ayırıcı ve satır sonları olduğu gibi kalır. Tablodaki bir tıklama alanı metinde gösterir, metindeki imleç de hücresini gösterir. Böylece mağazalardan, bankalardan ve veritabanlarından alınan dışa aktarımları hızla düzeltebilir, adres listelerini temizleyebilir veya verileri içe aktarmaya hazırlayabilirsiniz.

Her şey tarayıcınızda çalışır. Dosyalar yüklenmez; kayıt ve reklam yoktur.

Editörün yapabilecekleri

Bir elektronik tablo gibi

Hücrelere yazın, ok tuşları ve Tab ile gezinin, Excel, LibreOffice veya Google Sheets'ten ve onlara aralıklar kopyalayıp yapıştırın, satır ve sütun ekleyin, silin ve taşıyın.

Her türlü CSV

Ayırıcı olarak virgül, noktalı virgül, sekme veya dikey çizgi, kendiliğinden algılanır; başlık satırıyla veya başlık satırı olmadan; BOM'lu veya BOM'suz UTF-8 ve Windows-1252; Windows ve Unix satır sonları korunur.

Bozuk olanı bulun

Farklı sayıda alanı olan satırlar, hiç kapatılmamış tırnaklar, boş ve yinelenen sütun adları - satırlarıyla listelenir, bir tık uzaklıkta.

Sıralayın, filtreleyin, yakından bakın

Dosyaya dokunmadan görünümü sıralayın ve filtreleyin ya da verilerin kendisini sıralayın. Sütun paneli değerlerin türünü, boş ve farklı olanları, toplamı ve ortalamayı gösterir.

Büyük dosyalar

Tablo yalnızca gördüğünüz satırları çizer: 100 000 satırlık dosyalarda bile kaydırma, filtreleme ve düzenleme hızlı kalır.

Dışa aktarma

Excel çalışma kitabı (XLSX), JSON, Markdown ve HTML tabloları, TSV veya başka bir ayırıcı ve kodlamayla CSV - elektronik tablo formüllerine karşı korumayla.

Nasıl çalışır

  1. Açın - bir CSV dosyasını pencereye bırakın, "Dosya aç…" ile açın veya "Yeni" altındaki bir şablonla başlayın.
  2. Düzenleyin - tablodaki hücreleri veya soldaki metni değiştirin; ikisi birbirini izler. Satırlar ve sütunlar için "Ekle"yi, ayırıcı için "Biçim"i kullanın.
  3. Kaydedin - CSV'yi olduğu gibi indirin veya XLSX, JSON, Markdown ya da HTML olarak dışa aktarın.

Editörü kendi web sitenizde kullanın

Her https sayfası (ve localhost) editörü bir <iframe> ve ?embed=1 ile yerleştirebilir - kayıt yok, anahtar yok. Yerleştirildiğinde editör bu metni gizler ve bir Kaydet düğmesi gösterir. Tabloyu içeri almanın ve dışarı vermenin iki yolu vardır.

1. Bir bağlantıdan dosya açın, sunucunuza kaydedin

src= bir dosya açar (sunucunuz CORS'a izin vermelidir), webhook= ise "Kaydet"in (Ctrl+S) belgeyi o adrese göndermesini sağlar. Authorization: Bearer … başlığı için &token=…, her değişiklikten sonra kaydetmek için &auto ekleyin.

<iframe src="https://csv.giit.ch/?embed=1&src=https://your-site.com/data/products.csv&webhook=https://your-site.com/save.php"
        allow="clipboard-write" style="width:100%;height:800px;border:0"></iframe>

Webhook, JSON içeren bir POST alır: { editor: "csv", event: "save", id, name, content, updated }. Bunu saklayan küçük bir PHP betiği:

<?php
header('Access-Control-Allow-Origin: https://csv.giit.ch');
header('Access-Control-Allow-Headers: Content-Type, Authorization');
header('Access-Control-Allow-Methods: POST, OPTIONS');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') exit;
if (($_SERVER['HTTP_AUTHORIZATION'] ?? '') !== 'Bearer SECRET') { http_response_code(403); exit; }
$d = json_decode(file_get_contents('php://input'), true);
$name = preg_replace('/[^\w\- ]/u', '_', $d['name']);
file_put_contents(__DIR__ . "/data/$name.csv", $d['content']);
echo '{"ok":true}';

2. Belgeyi sayfanız tutar (postMessage)

Editör csveditor:ready der, sayfanız csveditor:load ile yanıt verir, editör csveditor:loaded, gerçek düzenlemelerde csveditor:change ve kullanıcı kaydettiğinde csveditor:save bildirir. Sayfanız csveditor:get (geçerli durum) veya csveditor:save (Kaydet'e basma) gönderebilir. Kaydetme böylece kendi oturum açma ve oturum sisteminiz üzerinden yapılır.

<iframe id="ed" src="https://csv.giit.ch/?embed=1" allow="clipboard-write" style="width:100%;height:800px;border:0"></iframe>
<script>
const ed = document.getElementById('ed');
const ORIGIN = 'https://csv.giit.ch';

addEventListener('message', async e => {
  if (e.source !== ed.contentWindow || e.origin !== ORIGIN) return;
  const m = e.data;
  if (m.type === 'csveditor:ready') {               // editör hazır: belgeyi ona verin
    ed.contentWindow.postMessage({
      type: 'csveditor:load',
      name: 'Products',
      content: await (await fetch('/data/products.csv')).text()
    }, ORIGIN);
  }
  if (m.type === 'csveditor:change') document.title = '● not saved';   // gerçek bir düzenleme
  if (m.type === 'csveditor:save') {                // kullanıcı "Kaydet"e tıkladı
    await fetch('/api/save', { method: 'POST', headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ name: m.name, content: m.content }) });
    document.title = 'Saved';
  }
});

// Kendi sayfanızda bir kaydet düğmesi: yanıt csveditor:save olarak gelir
function saveNow() { ed.contentWindow.postMessage({ type: 'csveditor:get' }, ORIGIN); }
</script>

Sayfanızın içinde Yapay Zekâ Asistanı: çerçeve içinde de çalışır. iframe üzerinde allow="clipboard-write" ile "İstemi kopyala" panoyu doğrudan kullanır (aksi halde editör eski kopyalama komutuna geri döner veya istemi elle kopyalamanız için gösterir). Yapay zekânın gönderdiği bir bağlantı başka bir web sitesinin içindeki editöre ulaşamaz; bu yüzden editör, yapay zekâya ve kullanıcıya bunun yerine yapay zekânın yanıtının tamamını editöre yapıştırmasını söyler - veya editörü kendi penceresinde açın.

3. Kendi penceresinde

window.open("https://csv.giit.ch/?embed=window", "csveditor-17") tam editörü kendi penceresinde açar ve aynı mesajları window.opener ile konuşur. Yapay zekâdan gelen bağlantılar ona orada ulaşır. csveditor:load ayrıca context: { host, title, rules } taşıyabilir - yapay zekâ istemi bu durumda belgenin nereye ait olduğunu söyler ve kurallarınıza uyar - ve hook: { url, token }, yalnızca bu belge için olan ve asla saklanmayan bir webhook. Kaydedilmemiş değişikliklerle pencereyi kapatmak csveditor:closing gönderir.

4. Kendi sunucunuz üzerinden yapay zekâ

Editöre kendi isteminizi, sitenizde bir adresi ve bu editör oturumu için bir anahtarı verin. Yapay zekâ iletişim kutusu bu durumda sitenize "Bağlı" olduğunu, yapay zekâya ne söylediğinizi ve geçerli belgeyi değiştir veya yeni bir belge oluştur seçimini gösterir; İstemi kopyala hepsini bir araya getirir. Yapay zekâ sonucunu anahtarla sunucunuza gönderir ve sayfanız onu editörde açar - yeni bir belge ayrı açılır ve kullanıcının tarayıcısında kalır. Editör oturumu başına bir anahtar: editör açık olduğu sürece geçerli kalır ve editör yalnızca anahtarı yokken csveditor:key-request ile ister. Editör anahtarı asla kendisi göndermez ve asla saklamaz; adres kendi alan adınızda veya onun bir alt alan adında https olmalıdır.

const key = async () => (await fetch('/api/ai-key.php?doc=17')).json();   // editör oturumu başına bir anahtar
const k = await key();
ed.contentWindow.postMessage({ type: 'csveditor:load', name: 'Products', content, ai: {
  label: 'My Site', prompt: 'Keep the column names. Prices in CHF.',
  endpoint: 'https://your-site.com/api/ai-result.php', key: k.key } }, ORIGIN);
// csveditor:loaded içindeki id'yi hatırlayın ve başka id'li change/save/closing mesajlarını yok sayın
// yalnızca editörün anahtarı yokken:
if (m.type === 'csveditor:key-request') { const k = await key(); ed.contentWindow.postMessage({ type: 'csveditor:ai', key: k.key }, ORIGIN); }
// editör açıkken sunucunuza her dakika bildirin; editörü veya sayfayı kapatmak anahtarı geçersiz kılar
setInterval(() => fetch('/api/ai-key.php?alive=' + k.key.slice(0, 8)), 60000);
// sunucunuzda bir sonuç var (polling, SSE …): target "current" veya "new" olur
ed.contentWindow.postMessage({ type: 'csveditor:load', name: 'Products', content: draft, from: 'ai', target }, ORIGIN);

Anahtarları en az 128 rastgele bitle oluşturun, yalnızca özetlerini (hash) saklayın, her birini oturum açmış kullanıcıya, belgeye ve bu editör oturumuna bağlayın, oturum başına bir tane oluşturun, yalnızca sayfanız oturumu açık bildirdiği sürece geçerli tutun ve editör veya sayfa kapandığında geçersiz kılın.

Protokolün tamamı llms.txt dosyasındadır - bir yapay zekâya verin, sisteminiz için bağlantıyı o kursun. Diğer giit editörleri kendi önekleriyle aynı şekilde çalışır, örneğin LaTeX Editörü latexeditor: ile - latex.giit.ch.

Sıkça sorulan sorular

CSV dosyam yükleniyor mu?

Hayır. Editör tamamen tarayıcınızda çalışır. Kendi sunucunuza bir webhook kurmadığınız sürece dosyalarınız asla bir sunucuya gönderilmez.

Tek bir hücreyi düzenlediğimde editör dosyamı değiştiriyor mu?

Yalnızca o hücreyi. Editör değişikliği CSV metnine tam alanın bulunduğu yere yazar ve gerisini olduğu gibi bırakır: diğer tırnaklar, ayırıcı ve satır sonları korunur. Bir alan yalnızca gerektiğinde tırnak içine alınır.

CSV'm noktalı virgül kullanıyor - bu çalışır mı?

Evet. Editör ayırıcı olarak virgülü, noktalı virgülü, sekmeyi ve dikey çizgiyi algılar; bunu Biçim altında da seçebilirsiniz. Dönüştür dosyayı başka bir ayırıcıya çevirir.

CSV'yi Excel'de Türkçe karakterler bozulmadan nasıl açarım?

XLSX olarak dışa aktarın veya CSV'yi bayt sırası işaretiyle (BOM) indirin - Biçim altında işaretleyin veya dışa aktarmada "BOM'lu UTF-8"i seçin. Excel bu durumda UTF-8'i doğru okur.

Büyük dosyaları işleyebilir mi?

Evet. Tablo yalnızca gördüğünüz satırları çizer, bu yüzden 100 000 satırlık dosyalarda bile kaydırma, filtreleme ve düzenleme hızlı kalır.

Belgelerim nereye kaydediliyor?

Yalnızca tarayıcınıza. Belgeleri açmak, yeniden adlandırmak, çoğaltmak, indirmek veya silmek için sol üstteki klasör düğmesine (Belgelerim) tıklayın. Tarayıcınızın site verilerini temizlemek onları siler; bu yüzden saklamak istediklerinizi indirin - veya editörün onları kendi sunucunuza göndermesine izin verin ("Sunucuya kaydet"). Çok büyük dosyalar tarayıcının depolama alanına sığmayabilir; bu olduğunda editör size bildirir.

Bir yapay zekâ CSV Editöründe yazabilir mi?

Evet, her yapay zekâ - ChatGPT, Claude, Gemini, Copilot veya kodlama aracınızdaki yapay zekâ. "Yapay Zekâ Asistanı"na, ardından "İstemi kopyala"ya tıklayın, istemi yapay zekânıza yapıştırın ve ne yapması gerektiğini söyleyin. Yapay zekâ bir bağlantıyla yanıt verir; ona tıklayın, tablo editörünüzde görünür. "Geri al" her değişikliği geri alır.

CSV Editörü ücretli mi?

Hayır. Editör ücretsizdir; reklam ve kayıt yoktur.