CSV to Markdown
Konversi CSV ke tabel Markdown
Input CSV
Output Markdown
Apa itu Konversi CSV ke Markdown?
Mengonversi CSV ke tabel Markdown adalah tugas yang umum dilakukan pengembang. CSV (Comma-Separated Values) menyimpan data tabular sebagai teks biasa, dengan setiap baris pada barisnya sendiri dan kolom dipisahkan oleh pembatas seperti koma atau tab. Ini adalah format ekspor bawaan untuk spreadsheet, klien SQL, dan alat analitik. File CSV ringkas dan mudah dihasilkan, tetapi tidak memiliki cara bawaan untuk mengontrol tampilan data saat ditampilkan. File CSV yang dibuka di editor teks hanyalah deretan string yang dipisahkan koma — mudah dibaca oleh mesin tetapi sulit dipindai oleh manusia.
Tabel Markdown menyelesaikan masalah keterbacaan ini. Tabel Markdown didefinisikan oleh spesifikasi GitHub Flavored Markdown (GFM) dan didukung oleh GitHub, GitLab, Bitbucket, Notion, Obsidian, serta generator situs statis seperti Hugo dan Jekyll — di mana pun Markdown diproses, tabel akan dirender sebagai tabel HTML yang bersih. Sintaksnya menggunakan karakter pipa untuk memisahkan kolom dan baris pemisah berupa tanda hubung wajib antara baris header dan baris isi.
Mengonversi CSV ke tabel Markdown berarti membungkus setiap baris dalam sintaks pipa dan menyisipkan baris pemisah setelah header. Baris pertama CSV menjadi header tabel, dan setiap baris berikutnya menjadi baris isi. Konversi ini diperlukan saat Anda menempelkan data terstruktur ke README, deskripsi pull request, halaman wiki, atau sistem dokumentasi Markdown apa pun.
Mengapa Menggunakan Alat Ini?
Konverter ini mengurai CSV Anda di browser, membangun output tabel Markdown secara instan, dan tidak pernah mengirimkan data Anda ke server.
Kasus Penggunaan CSV ke Markdown
Referensi Sintaks Tabel Markdown
Tabel Markdown mengikuti spesifikasi GitHub Flavored Markdown (GFM). Setiap tabel memerlukan baris header, baris pemisah, dan satu atau lebih baris isi. Baris pemisah mengontrol perataan kolom.
| Elemen | Sintaks | Deskripsi |
|---|---|---|
| Column separator | | | Separates each cell within a row |
| Header row | | Name | Age | | First row of the table, defines column names |
| Separator row | | --- | --- | | Required second row; separates header from body |
| Left align | | :--- | | Default alignment — colon on the left side |
| Center align | | :---: | | Colons on both sides of the dashes |
| Right align | | ---: | | Colon on the right side only |
| Escaped pipe | \| | Use backslash to include a literal pipe in cell text |
CSV vs Tabel Markdown
Kedua format merepresentasikan data tabular sebagai teks biasa. CSV ditujukan untuk mesin dan pipeline data; tabel Markdown ditujukan untuk manusia yang membaca dokumentasi.
Contoh Kode
Contoh berikut menunjukkan cara mengonversi CSV ke tabel Markdown secara terprogram dalam berbagai bahasa. Masing-masing menghasilkan tabel GFM yang valid.
const csv = `name,age,city
Alice,30,Berlin
Bob,25,Tokyo`
const [headerLine, ...rows] = csv.trim().split('\n')
const headers = headerLine.split(',')
const separator = '| ' + headers.map(() => '---').join(' | ') + ' |'
const headerRow = '| ' + headers.join(' | ') + ' |'
const bodyRows = rows.map(row =>
'| ' + row.split(',').join(' | ') + ' |'
)
const markdown = [headerRow, separator, ...bodyRows].join('\n')
// → | name | age | city |
// → | --- | --- | --- |
// → | Alice | 30 | Berlin |
// → | Bob | 25 | Tokyo |import csv
import io
csv_string = """name,age,city
Alice,30,Berlin
Bob,25,Tokyo"""
reader = csv.reader(io.StringIO(csv_string))
rows = list(reader)
headers = rows[0]
lines = []
lines.append('| ' + ' | '.join(headers) + ' |')
lines.append('| ' + ' | '.join('---' for _ in headers) + ' |')
for row in rows[1:]:
lines.append('| ' + ' | '.join(row) + ' |')
print('\n'.join(lines))
# → | name | age | city |
# → | --- | --- | --- |
# → | Alice | 30 | Berlin |
# → | Bob | 25 | Tokyo |
# With pandas (one-liner)
import pandas as pd
df = pd.read_csv(io.StringIO(csv_string))
print(df.to_markdown(index=False))package main
import (
"encoding/csv"
"fmt"
"strings"
)
func main() {
input := "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo"
r := csv.NewReader(strings.NewReader(input))
records, _ := r.ReadAll()
headers := records[0]
var lines []string
lines = append(lines, "| "+strings.Join(headers, " | ")+" |")
sep := make([]string, len(headers))
for i := range sep {
sep[i] = "---"
}
lines = append(lines, "| "+strings.Join(sep, " | ")+" |")
for _, row := range records[1:] {
lines = append(lines, "| "+strings.Join(row, " | ")+" |")
}
fmt.Println(strings.Join(lines, "\n"))
// → | name | age | city |
// → | --- | --- | --- |
// → | Alice | 30 | Berlin |
// → | Bob | 25 | Tokyo |
}# Using Miller (mlr) — convert CSV to Markdown table mlr --icsv --omarkdown cat data.csv # → | name | age | city | # → | --- | --- | --- | # → | Alice | 30 | Berlin | # Using csvtomd (pip install csvtomd) csvtomd data.csv # Using pandas in a one-liner python3 -c " import pandas as pd, sys print(pd.read_csv(sys.argv[1]).to_markdown(index=False)) " data.csv