Kotlin में Excel के साथ कार्य: लाइब्रेरी का अवलोकन और व्यावहारिक उदाहरण
Kotlin, एक आधुनिक JVM भाषा के रूप में, Java पारिस्थितिकी तंत्र के साथ उत्कृष्ट संगतता रखता है। Excel फ़ाइलों (.xls और .xlsx) के साथ कार्य करने के लिए सबसे शक्तिशाली और व्यापक समाधान Apache POI लाइब्रेरी है। यह Microsoft Office दस्तावेज़ बनाने, पढ़ने और संशोधित करने की अनुमति देती है। इस लेख में, हम देखेंगे कि Kotlin में Apache POI का उपयोग कैसे करें, साथ ही कोड को सरल बनाने वाले विशेष Kotlin रैपर से भी परिचित होंगे।
1. Kotlin प्रोजेक्ट में Apache POI को जोड़ना
build.gradle.kts फ़ाइल में निर्भरताएँ जोड़ें (Gradle Kotlin DSL के लिए):
dependencies { implementation("org.apache.poi:poi:5.2.5") implementation("org.apache.poi:poi-ooxml:5.2.5")}Maven के लिए संबंधित poi और poi-ooxml आर्टिफैक्ट का उपयोग करें।
महत्वपूर्ण: .xlsx (Office Open XML) फ़ॉर्मेट के साथ कार्य करने के लिएpoi-ooxmlआवश्यक है, जबकिpoiपुराने .xls (HSSF) के लिए है।
2. Kotlin में Excel फ़ाइल (XLSX) बनाना और लिखना
एक शीट के साथ एक सरल कार्यपुस्तिका बनाएँ और डेटा लिखें।
import org.apache.poi.ss.usermodel.*import org.apache.poi.xssf.usermodel.XSSFWorkbookimport java.io.FileOutputStream
fun createExcel() { val workbook = XSSFWorkbook() val sheet = workbook.createSheet("कर्मचारी")
// शीर्षक val headerRow = sheet.createRow(0) val headers = listOf("आईडी", "नाम", "पद", "वेतन") headers.forEachIndexed { index, header -> headerRow.createCell(index).setCellValue(header) }
// डेटा val data = listOf( listOf(1, "इवान पेत्रोव", "डेवलपर", 120000.0), listOf(2, "मारिया स्मिर्नोवा", "विश्लेषक", 95000.0), listOf(3, "अलेक्से कुज़नेत्सोव", "परीक्षक", 85000.0) )
data.forEachIndexed { rowIndex, rowData -> val row = sheet.createRow(rowIndex + 1) rowData.forEachIndexed { colIndex, value -> when (value) { is Int -> row.createCell(colIndex).setCellValue(value.toDouble()) is Double -> row.createCell(colIndex).setCellValue(value) is String -> row.createCell(colIndex).setCellValue(value) } } }
// कॉलम की ऑटो-चौड़ाई for (i in headers.indices) { sheet.autoSizeColumn(i) }
// सहेजना FileOutputStream("employees.xlsx").use { stream -> workbook.write(stream) } println("फ़ाइल बनाई गई: employees.xlsx")}मुख्य बिंदु:
XSSFWorkbook— .xlsx (XSSF) के साथ कार्य करने के लिए क्लास। .xls के लिएHSSFWorkbookका उपयोग करें।- पंक्तियाँ और सेल 0 से इंडेक्स होते हैं।
autoSizeColumnस्वचालित रूप से कॉलम की चौड़ाई को सामग्री के अनुसार समायोजित करता है।- Kotlin में स्ट्रीम को स्वचालित रूप से बंद करने के लिए
useका उपयोग करना सुविधाजनक है।
3. Kotlin में Excel फ़ाइल पढ़ना
पहले बनाई गई फ़ाइल को पढ़ें और डेटा को कंसोल पर प्रदर्शित करें।
import org.apache.poi.ss.usermodel.*import org.apache.poi.xssf.usermodel.XSSFWorkbookimport java.io.FileInputStream
fun readExcel() { FileInputStream("employees.xlsx").use { stream -> val workbook = XSSFWorkbook(stream) val sheet = workbook.getSheetAt(0)
for (row in sheet) { for (cell in row) { when (cell.cellType) { CellType.STRING -> print("${cell.stringCellValue}\\t") CellType.NUMERIC -> print("${cell.numericCellValue}\\t") CellType.BOOLEAN -> print("${cell.booleanCellValue}\\t") else -> print("?\\t") } } println() } }}ध्यान दें कि प्र