Kotlin में Excel के साथ काम करें: Apache POI और Kotlin रैपर
Kotlin, JVM के लिए एक आधुनिक प्रोग्रामिंग भाषा है, जो ऑफिस दस्तावेज़ों के ऑटोमेशन के लिए शानदार सुविधाएँ प्रदान करती है। इस लेख में, हम सीखेंगे कि Kotlin में Excel फ़ाइलों (XLS और XLSX) के साथ कैसे काम करें, लोकप्रिय Apache POI लाइब्रेरी और इसके Kotlin-अनुकूल रैपर Apache POI for Kotlin का उपयोग करके।
Excel के लिए Kotlin क्यों चुनें?
Kotlin, Java की तुलना में अधिक संक्षिप्त और सुरक्षित सिंटैक्स प्रदान करता है, जो Excel के जटिल API के साथ काम करते समय विशेष रूप से उपयोगी है। Kotlin का उपयोग करके आप:
- बॉयलरप्लेट कोड को कम कर सकते हैं
- सुरक्षित प्रकार और null-safety का लाभ उठा सकते हैं
- पठनीयता बढ़ाने के लिए extension-फ़ंक्शन का उपयोग कर सकते हैं
- मौजूदा Java लाइब्रेरीज़ के साथ आसानी से एकीकृत हो सकते हैं
मुख्य लाइब्रेरी: Apache POI
Apache POI JVM इकोसिस्टम में Microsoft Office दस्तावेज़ों के साथ काम करने का डी-फैक्टो मानक है। यह सपोर्ट करता है:
- XLS (HSSF) और XLSX (XSSF) को पढ़ना और लिखना
- फ़ॉर्मूले, स्टाइल और मर्ज की गई कोशिकाओं के साथ काम करना
- चार्ट और पिवट टेबल बनाना
- SXSSF (स्ट्रीमिंग) के माध्यम से बड़ी फ़ाइलों को संभालना
Gradle (Kotlin DSL) में जोड़ने के लिए build.gradle.kts में यह कोड डालें:
dependencies {
implementation("org.apache.poi:poi:5.3.0")
implementation("org.apache.poi:poi-ooxml:5.3.0")
}
रैपर लाइब्रेरी: Apache POI for Kotlin
POI के साथ काम को आसान बनाने के लिए कई Kotlin रैपर मौजूद हैं। एक लोकप्रिय विकल्प है kotlin-poi (com.github.doyaaaaaken:kotlinpoi)। यह Excel फ़ाइलें बनाने के लिए extension-फ़ंक्शन और DSL-शैली जोड़ता है।
इसे जोड़ने का तरीका:
repositories {
mavenCentral()
}
dependencies {
implementation("com.github.doyaaaaaken:kotlinpoi:1.0.0")
}
उदाहरण 1: एक साधारण XLSX फ़ाइल बनाना (शुद्ध POI)
एक शीट वाली वर्कबुक बनाएँ और उसमें डेटा भरें:
import org.apache.poi.xssf.usermodel.XSSFWorkbook
import java.io.FileOutputStream
fun createSimpleExcel() {
val workbook = XSSFWorkbook()
val sheet = workbook.createSheet("डेटा")
// हेडर बनाएँ
val headerRow = sheet.createRow(0)
headerRow.createCell(0).setCellValue("नाम")
headerRow.createCell(1).setCellValue("उम्र")
headerRow.createCell(2).setCellValue("शहर")
// डेटा भरें
val data = listOf(
listOf("अन्ना", 28, "मुंबई"),
listOf("राहुल", 35, "दिल्ली"),
listOf("प्रिया", 22, "बेंगलुरु")
)
data.forEachIndexed { index, rowData ->
val row = sheet.createRow(index + 1)
rowData.forEachIndexed { cellIndex, value ->
when (value) {
is String -> row.createCell(cellIndex).setCellValue(value)
is Int -> row.createCell(cellIndex).setCellValue(value.toDouble())
else -> row.createCell(cellIndex).setCellValue(value.toString())
}
}
}
// कॉलम की ऑटो-चौड़ाई
for (i in 0..2) {
sheet.autoSizeColumn(i)
}
// फ़ाइल सेव करें
FileOutputStream("output.xlsx").use { fileOut ->
workbook.write(fileOut)
}
workbook.close()
println("फ़ाइल बन गई: output.xlsx")
}
उदाहरण 2: Excel फ़ाइल पढ़ना (शुद्ध POI)
import org.apache.poi.ss.usermodel.WorkbookFactory
import java.io.FileInputStream
fun readExcel(filePath: String) {
val file = FileInputStream(filePath)
val workbook = WorkbookFactory.create(file)
val sheet = workbook.getSheetAt(0)
println("शीट पढ़ी जा रही है: ${sheet.sheetName}")
println("कुल पंक्तियाँ: ${sheet.physicalNumberOfRows}")
for (row in sheet) {
val rowData = mutableListOf<String>()
for (cell in row) {
rowData.add(cell.to पुस्तकालय में भी
PHP अनुप्रयोग निगरानी: उपकरणों और पुस्तकालयों के लिए पूर्ण मार्गदर्शिका
Room Kotlin: पूर्ण गाइड उदाहरणों के साथ
PHP के लिए CLI फ्रेमवर्क: Symfony Console और Laravel Zero के साथ कंसोल एप्लिकेशन बनाना
जावा में जियोलोकेशन और मैप्स: लाइब्रेरीज़ और टूल्स की समीक्षा