Catatan rilis HotXLS
Riwayat versi HotXLS untuk fitur yang terlihat oleh pengguna, perbaikan, peningkatan XLS/XLSX, pembaruan ekspor, perubahan kompatibilitas, dan perubahan dokumentasi
Rilis terbaru
- Versi terbaru: 2.229.0; Tanggal rilis: 2026-08-03
Versi 2.229.0
Ditambahkan
TXLSXWorksheet.HeaderFooterImageskini membuat, menemukan, mengganti, dan menghapus slot gambar bertipe untuk setiap posisi header atau footer kiri, tengah, dan kanan pada halaman ganjil, genap, dan halaman pertama- Gambar header dan footer mengekspos data mentah, format, judul, dimensi titik, dan margin titiknya, dengan pemuatan langsung dari berkas PNG, JPEG, GIF, BMP, EMF, dan WMF
Diubah
- Gambar halaman genap dan halaman pertama secara otomatis mengaktifkan varian halaman yang cocok dan mempertahankan kode bidang gambar yang diperlukan saat teks header atau footer disunting
Diperbaiki
- Komentar lembar kerja dan gambar header atau footer kini mempertahankan hubungan VML independen saat berbagi satu lembar kerja
- Slot gambar header dan footer yang dibuat Excel kini mempertahankan byte gambar, format, judul, dimensi, margin, dan hubungannya melalui siklus buka dan simpan
Versi 2.228.0
Ditambahkan
- Lembar kerja XLS klasik dan koleksi bentuk kini membuat dan menemukan kontrol bertipe
TXLSButtondanTXLSRadioButtonbersama kotak centang, kotak kombo, dan kotak daftar - Kontrol formulir kini menampilkan nama makro, sel tertaut, rentang input, status centang, tampilan datar atau 3D, dan tautan grup radio melalui properti bertipe
- Nama yang ditentukan menampilkan
IsMacroagar pengikatan makro menyimpan metadata nama buku kerja yang diperlukan
Diperbaiki
- Mengedit dan menyimpan ulang kontrol formulir klasik tidak lagi membuang status centang, pengikatan makro, rumus sel tertaut, rentang sumber, atau metadata grup radio yang didukung
- Menghapus rentang sumber kotak kombo atau kotak daftar kini menghapus rumus input terserialisasi alih-alih memulihkan rentang sebelumnya saat pembukaan berikutnya
Versi 2.227.0
Ditambahkan
LINESTdanLOGESTkini mengembalikan array koefisien multivariabel lengkap dan matriks statistik lima baris opsionalTRENDdanGROWTHkini mengembalikan array prediksi terbentuk untuk input satu variabel dan multivariabel
Diubah
- Aritmetika array, perbandingan, penggabungan, negasi uner, dan operasi persen kini menyiarkan skalar serta baris atau kolom tunggal sambil mempertahankan hasil per sel
- Dependensi perhitungan kini memperluas nama buku kerja dan lembar kerja bertingkat, nama yang ditetapkan rumus, dan referensi multi-area dengan perlindungan siklus yang sadar cakupan
Diperbaiki
- Kesalahan pada satu elemen array tidak lagi meruntuhkan hasil lengkap atau salah kembali ke evaluasi skalar
- Nama yang ditetapkan rumus yang dependensinya dapat diselesaikan secara statis tidak lagi memaksa perhitungan ulang penuh yang volatil dan tidak perlu
Versi 2.226.0
Ditambahkan
- Cache pivot XLSX dan tampilan tabel pivot yang ada kini dimuat ke dalam model bertipe melalui hubungan paket, termasuk catatan cache, bidang, item bersama, pengelompokan, filter, format, definisi terhitung, dan ekstensi
TXLSPivotTable.Makekini mengevaluasi bidang cache terhitung, item terhitung, dan anggota data terhitung dengan pengikatan nama yang sadar dependensi- Mode
ShowDataAsyang diperluas menambahkan persentase induk, persentase berjalan, dan peringkat menaik atau menurun dengan markup ekstensi XLSX yang valid
Diubah
- Pembuatan hasil pivot kini menerapkan visibilitas item, pilihan halaman, filter kapsion, tanggal, agregat, dan nilai sebelum membangun domain yang dikelompokkan
- Kelompok numerik, tanggal, dan diskrit, pengurutan label atau nilai data, subtotal yang dikonfigurasi, serta baris atau kolom total keseluruhan termaterialisasi opsional kini berpartisipasi dalam pembuatan hasil
Diperbaiki
- Filter pivot kini menggunakan markup filter tingkat akar yang valid sesuai skema dan jenis filter simbolik alih-alih nilai numerik ambigu
- Pemuatan berbasis hubungan tidak lagi mengasumsikan nama bagian cache pivot, catatan cache, atau tabel pivot yang konvensional atau berurutan
Versi 2.225.0
Ditambahkan
TXLSXWorkbook.ConnectionsdanTXLSXWorksheet.QueryTableskini menyediakan pembuatan dan penyuntingan berketik untuk metadata basis data eksternal, web, teks, dan hasil kueri- Parameter koneksi mempertahankan jenis Boolean, bilangan bulat, titik mengambang, string, atau referensi sel secara tepat, termasuk nilai nol, false, dan string kosong eksplisit
Diubah
- Membuka dan menyimpan XLSX kini menyelesaikan dan menulis bagian koneksi serta tabel kueri melalui relasi pemiliknya, menyinkronkan tabel hasil dan nama yang ditentukan, serta mempertahankan atribut, simpul anak, dan daftar ekstensi yang tidak dikenal
- Penyuntingan baris dan kolom menjaga rentang hasil kueri tetap selaras, sementara penyalinan lembar kerja dalam buku kerja yang sama dan lintas buku kerja mempertahankan kepemilikan kueri serta memetakan ulang identifier koneksi dan nama yang berkonflik
Diperbaiki
- Tabel kueri dapat hidup berdampingan dengan tabel standar, komentar berulir, dan tabel pivot tanpa bentrokan identifier relasi lembar kerja atau buku kerja
Versi 2.224.0
Ditambahkan
- Lembar kerja XLS klasik dan XLSX modern kini menyediakan
AddDataTabledanDataTablesuntuk tabel data What-If satu-variabel baris, satu-variabel kolom, dan dua-variabel
Diubah
- Perhitungan ulang buku kerja mengevaluasi setiap hasil tabel data dengan konteks input terisolasi, termasuk dependensi rumus tidak langsung, dan mempertahankan definisi serta hasil tembolok melalui buka, simpan, salin lembar kerja, dan edit struktural baris atau kolom
Diperbaiki
- Sel input What-If yang dihapus kini menghasilkan hasil
#REF!, dan perhitungan ulang buku kerja klasik mengunjungi setiap lembar kerja alih-alih menghilangkan lembar pertama - Menyisipkan baris di bagian atas lembar kerja klasik tidak lagi berisiko melanggar akses pada Win64
Versi 2.223.0
Diubah
- Pembatalan pembaca langsung paralel kini merambat melalui pembacaan anggota ZIP aktif dan setiap langkah dekompresi alih-alih menunggu tarikan XML berikutnya
Diperbaiki
- Membatalkan pemindaian lembar kerja paralel tidak lagi menunggu pembacaan XML terkompresi besar selesai sebelum pekerja yang diblokir dilepaskan
Versi 2.222.0
Ditambahkan
TXLSDirectReader.ParallelBufferMemoryLimitmembatasi muatan antrean raw-cell agregat untuk pemindaian lembar kerja paralel, sementaraParallelPeakBufferedBytesmenyajikan puncak terukur untuk diagnostik dan uji kapasitas
Diubah
- Pembacaan langsung paralel kini men-stream entri ZIP lembar kerja ke pembaca XML lokal-pekerja dan antrean produsen-konsumen terbatas alih-alih menyimpan XML lembar kerja yang diinflate lengkap dan penyangga sel per-lembar lengkap
- Lembar kerja aktif menerima anggaran antrean independen dan diproses dalam jendela berukuran-pekerja, menjaga urutan callback tanpa memungkinkan lembar kerja berikutnya membuat kelaparan lembar kerja yang sedang dipancarkan
Diperbaiki
- Pembatalan sel, kegagalan callback, dan kesalahan pekerja kini membangunkan produsen dan konsumen yang diblokir, menghentikan tarikan XML secara kooperatif, menggabungkan semua pekerja, dan membuat pembaca langsung dapat digunakan kembali
Versi 2.221.0
Diubah
- Pembukaan XLSX multi-lembar kini men-stream setiap entri ZIP lembar kerja langsung ke inflater dan pembaca XML lokal-pekerjanya alih-alih menyimpan XML lembar kerja yang diinflate sebelum penguraian
- Pembaca lembar kerja serentak hanya menserialisasikan pembacaan terposisi singkat dari sumber paket, sehingga dekompresi dan penguraian XML tetap paralel sementara memori input lembar kerja sementara dibatasi oleh jumlah pekerja aktif
Versi 2.220.0
Ditambahkan
- Pembuatan hasil PivotTable kini menjalankan kesembilan mode
ShowDataAsklasik, termasuk selisih, persen dari item dasar, persentase selisih, total berjalan, persen baris, persen kolom, persen total, dan perhitungan indeks xlPivotBaseItemPreviousdanxlPivotBaseItemNextmenyediakan selektor bertipe untuk item dasar yang berdekatan dalam perhitungan pembanding
Diubah
- Persentase pivot dan nilai indeks menggunakan subtotal baris, kolom, dan total keseluruhan yang diagregasi langsung dari catatan sumber, menjaga semantik Rata-rata, Perkalian, Hitung, variansi, dan deviasi standar yang benar tanpa memindai ulang sumber
- Total berjalan mengikuti urutan item pivot, direset secara independen untuk setiap kelompok peer, dan mempertahankan penyimpanan hasil jarang untuk pivot berkarinalitas tinggi
Diperbaiki
- Rekaman BIFF8
SXDIkini menggunakan tata letak tetap 14-byte standar dan mempertahankanShowDataAs, bidang dasar, item dasar, format angka, dan nama tampilan melalui pembacaan bertipe, sementara rekaman HotXLS lama tetap dapat dibaca - Bidang data XLSX kini menulis indeks bidang pivot, memetakan selektor sebelumnya dan berikutnya ke nilai OOXML yang diperlukan, dan memancarkan atribut dasar hanya untuk mode yang menggunakannya
- Sel pembanding yang hilang tetap kosong, sementara penyebut nol yang ada mengembalikan
#DIV/0!alih-alih dikacaukan dengan data yang hilang
Versi 2.219.0
Diperbaiki
VDBkini menerapkan depresiasi saldo menurun di seluruh periode pecahan, beralih ke depresiasi garis lurus bila menguntungkan, dan menghormatino_switch- Faktor nol, batas nilai sisa, periode awal pecahan, dan rentang periode yang tidak valid kini mengikuti hasil yang kompatibel dengan Excel alih-alih membulatkan periode dan mengembalikan perkiraan saldo menurun yang disederhanakan
Versi 2.218.0
Ditambahkan
TXLSXWorksheet.Scenarioskini menyediakan pembuatan Manajer Skenario What-If bertipe dengan skenario bernama, indeks aktif dan ditampilkan, rentang sel yang berubah, metadata pengguna dan komentar, status terkunci dan tersembunyi, serta nilai sel input yang dimiliki- Definisi skenario kini mengikuti salinan lembar kerja dan editan struktural baris atau kolom, sementara batas kompatibilitas Excel divalidasi sebelum metadata yang tidak valid dapat ditulis
Diperbaiki
- Membuka dan menyimpan skenario yang dibuat di Excel kini mempertahankan atribut akar dan sel input bertingkat alih-alih meratakan hierarki menjadi XML mentah yang merugi
- Elemen lembar kerja skenario, AutoFilter, konsolidasi data, sel yang digabung, dan fonetik kini menggunakan urutan skema sehingga konsumen spreadsheet yang ketat tidak memerlukan pass perbaikan
Versi 2.217.0
Ditambahkan
TXLSXWorksheet.IgnoredErrorskini menyediakan penyusunan bertipe untuk setiap kategori kesalahan-abaian standar dengan referensi multi-area, dukungan salin lembar kerja, pembaruan edit struktural, dan perjalanan pulang-pergi buka/simpanTXLSXWorkbookkini menampilkan mode referensi, penghitungan-ulang saat simpan, presisi penuh, penghitungan serentak, dan pengaturan konkurensi manual di samping opsi penghitungan yang sudah ada
Diperbaiki
- Setiap pengaturan penghitungan buku kerja non-bawaan kini secara mandiri menghasilkan dan melakukan perjalanan pulang-pergi elemen
calcPryang diurutkan sesuai skema, termasuk batas iterasi yang dikonfigurasi sebelum iterasi diaktifkan - Mode penghitungan, mode referensi, batas iterasi, pengidentifikasi penghitungan, dan hitungan konkurensi manual kini menolak atau menormalkan nilai yang tidak valid alih-alih menulis status buku kerja yang ambigu
Versi 2.216.0
Diubah
XMATCHdanXLOOKUPkini melakukan pencarian biner logaritmik menaik atau menurun saat diminta, termasuk batas duplikat serta kecocokan aproksimasi yang kompatibel dengan ExcelXIRRkini menghormati tebakanannya melalui penyelesai yang terlindungi dan dapat menemukan akar nilai tinggi serta peka tebakan, sementaraXNPVmemakai penjumlahan terkompensasi serta input tanggal dan suku yang divalidasi- Pencarian defined-name XLSX berkarinalitas tinggi kini memakai indeks hash sadar-lingkup yang malas sembari mempertahankan urutan terserialisasi, prioritas nama-lokal, dan perilaku kecocokan-pertama
- Bagian paket XLSX yang dipertahankan kini mengalokasikan ukuran tidak-terkompresi yang dideklarasikan satu kali sembari mempertahankan verifikasi panjang dan CRC yang lengkap
Diperbaiki
- Mode pencarian tidak valid, pencarian biner wildcard, rentang pencarian dua dimensi, dan vektor kembalian
XLOOKUPyang tidak cocok kini melaporkan kesalahan rumus alih-alih menghasilkan keluaran ambigu XIRRdanXNPVkini menolak tanda arus kas, suku, tebakan, dan tanggal yang tidak valid, memotong serial tanggal pecahan, serta melaporkan ketidakkonvergenan alih-alih mengembalikan titik tengah yang tidak terverifikasi
Versi 2.215.0
Ditambahkan
FREQUENCYkini mengembalikan larik vertikal dengan satu hasil per bin ditambah wadah luapan
Diubah
SORTkini memakai pengurutan stabil yang skalabel untuk baris atau kolom, mempertahankan urutan sumber dari kunci yang samaUNIQUEkini memakai pencocokan terindeks-hash yang stabil untuk baris atau kolom, termasuk hasilexactly_oncedan teks case-insensitivePERCENTRANK.INC,PERCENTRANK.EXC, danMODE.MULTkini berskala efisien pada input berkarinalitas tinggi alih-alih mengandalkan pemindaian kuadratik
Diperbaiki
- Opsi
by_colpadaSORTdanUNIQUEkini beroperasi pada kolom alih-alih jatuh kembali ke perilaku baris
Versi 2.214.0
Ditambahkan
- Pembukaan XLSX kini menerima bagian XML UTF-16 little-endian dan big-endian yang mengalir dengan byte-order mark atau deklarasi spesifik-endian yang disyaratkan, termasuk karakter di luar Basic Multilingual Plane
Diubah
- Penyegaran cache PivotTable berkarinalitas tinggi kini memakai indeks hash deterministik untuk nilai bersama dan mengalokasikan matriks rekaman satu kali, mempertahankan urutan item yang pertama terlihat sembari menghindari pencarian linier berulang dan pertumbuhan baris-demi-baris
- Pembacaan langsung terproyeksi kini membuang sel di luar baris dan kolom terpilih sebelum menyalin nilai mentah, rumus, dan rich text ke dalam buffer per-lembar
Diperbaiki
- XML cacat dengan byte-order mark ganda, deklarasi pengodean yang tidak didukung atau kontradiktif, tanda tangan UTF-32, panjang byte UTF-16 ganjil, atau pasangan surrogate tidak valid kini ditolak
- Pekerja pembaca-langsung paralel kini menginisialisasi semua status pekerjaan sebelum dimulai, berhenti mengambil pekerjaan lembar baru setelah kegagalan, mengangkat kembali kesalahan pekerjaan indeks-terendah secara deterministik, dan membersihkan setiap pekerja yang dibuat jika konstruksi pool gagal
Versi 2.213.0
Ditambahkan
T.TESTkini mengevaluasi sampel independen dengan variansi rata yang dipool ataupun variansi Welch tidak rata selain sampel berpasangan, termasuk probabilitas ekor-satu dan ekor-dua
Diubah
- Pembukaan XLSX kini mengikuti target relasi workbook, worksheet, dan drawing untuk worksheet, shared string, style, tema, makro, external link, komentar, komentar berulir, VML, drawing, gambar, bagan, tabel, dan PivotTable, termasuk paket valid yang memakai jalur bagian yang diubah nama atau tidak-kontigu
Diperbaiki
- Paket cacat dengan identifier relasi ganda tidak lagi mengizinkan relasi yang didukung-belakangan menggantikan target pertama yang dapat dipakai selama pemulihan kompatibilitas
Versi 2.212.0
Diubah
- Pelacakan dependensi rumus kini berskala lebih baik pada lembar kerja besar dengan mengindeks dependensi sel dan rentang sebelum pembangunan-ulang dan invalidasi sel-kotor
- Rumus statistik dan regresi besar kini mengevaluasi setiap nilai numerik dalam rentang yang diberikan alih-alih berhenti pada buffer ukuran-tetap sebelumnya
Diperbaiki
- Sel XLSX di luar grid lembar kerja ditolak secara konsisten sehingga koordinat tidak valid tidak lagi membayangi sel yang valid
- Mengubah rumus tidak lagi mereset mode perhitungan workbook, batas iterasi, flag full-calculation, ataupun pengaturan perhitungan lainnya
- Pembacaan blob-list kini memvalidasi rentang yang diminta secara eksplisit dan mengizinkan slice kosong yang valid di akhir stream
Keamanan
- Enkripsi XLS klasik kini mencakup stream pivot cache bersama data lembar kerja
- Ekor ekstensi SST cacat dan rekaman direktori-pusat ZIP ditolak sebelum alokasi berukuran berlebih, pembacaan terpotong, atau rekaman direktori palsu yang tertanam komentar dapat memengaruhi pemuatan
Versi 2.211.0
Ditambahkan
TXLSPivotTable.Makekini mematerialisasikan setiap field data yang dikonfigurasi dengan agregasinya sendiri dan mengembangkan nilai pada baris atau kolom sesuaiDataFieldAxisIsRow
Diubah
- Pembuatan hasil pivot memakai ulang domain kunci baris dan kolom terindeks-hash di seluruh field data, memilih penyimpanan akumulator padat ataupun jarang dari bentuk hasil, mempertahankan urutan item cache melebihi sembilan kunci, serta memancarkan label gabungan yang dapat dibaca untuk sumbu multi-field
Diperbaiki
Countkini menyertakan nilai cache teks tak-kosong, Boolean, kesalahan, tanggal, dan numerik sementaraCountNumshanya menyertakan nilai numerik dan tanggal,Productmengembalikan nol untuk perpotongan tanpa nilai numerik, sel kosong tidak lagi dihitung sebagai entri, dan pivot nilai-saja dapat mematerialisasikan total keseluruhannya tanpa field baris atau kolom
Versi 2.210.0
Ditambahkan
TXLSWorkbookViewerkini merender isian bersyarat XLSX, warna dan penekanan font, format angka, data bar positif dan negatif berarah, gradien, border, sumbu, nilai tersembunyi, serta seluruh keluarga icon-set bawaanTXLSWorkbookViewer.RefreshConditionalFormatsmembangun-ulang status agregat dan ambang yang telah disiapkan setelah pemanggil memodifikasi workbook XLSX yang tercantel secara langsung
Diubah
- Viewer men-cache satu evaluator format-bersyarat yang telah disiapkan per lembar kerja aktif, memakainya ulang di seluruh operasi pengguliran, pemilihan, dan repaint, serta melepaskannya saat workbook atau lembar kerja berubah
Diperbaiki
- Sumbu data-bar pada batas paling kanan kini dipotong di dalam sel pemilik alih-alih digambar ke dalam sel yang berdekatan
Versi 2.209.0
Ditambahkan
- Lembar kerja XLSX kini menyediakan evaluator format-bersyarat yang telah disiapkan yang menyelesaikan prioritas aturan,
StopIfTrue, rumus relatif, gaya diferensial, peringkat Top/Bottom, uji di-atas/di-bawah-rata-rata, nilai duplikat dan unik, periode tanggal relatif, skala dua- dan tiga-warna, data bar, serta icon set untuk sel mana pun
Diubah
- Ekspor HTML dan PDF kini merender isian bersyarat yang cocok, penekanan dan warna font, format angka, skala warna, data bar positif dan negatif berarah, sumbu eksplisit, glyph keluarga-ikon, nilai tersembunyi, serta warna tema dengan resolusi tint
- Domain format-bersyarat besar kini memakai ulang rumus relatif yang telah dikompilasi tanpa alokasi pohon-sintaks per-sel, mengalirkan statistik mean, deviasi, minimum, dan maksimum, hanya menyimpan nilai terurut untuk aturan peringkat atau persentil, mengurutkan-batch kunci duplikat Unicode, serta memakai indeks kandidat row-band untuk menghindari pemindaian aturan yang tidak terkait
Diperbaiki
- Aturan bersyarat klasik kini memuat tipe ekspresi dengan benar dan mengevaluasi kebalikan-antar-batas, predikat teks case-insensitive, sel kosong, serta predikat kesalahan secara konsisten
Versi 2.208.0
Diubah
- Mesin penyimpanan sel terpadat kini menulis payload string, Boolean, kesalahan, dan kosong berta-tag native, mengiterasi sel dalam urutan row-major, dan melakukan run-length encode sel bertipe-sama berurutan untuk penggunaan memori lebih rendah dan keluaran sekuensial lebih cepat
- Shared string workbook klasik kini menyimpan byte karakter dalam satu alokasi dan membuat nilai string terdekode secara malas, mengurangi overhead alokasi pada tabel string-unik besar
Ditambahkan
- Tabel pivot kini dapat menghitung matriks hasil lengkap dari rekaman cache dengan pengelompokan kunci baris dan kolom serta seluruh 11 fungsi agregat yang didukung
- Bagan workbook klasik kini menyediakan informasi series, axis, legend, dan chart-group yang bertipe untuk alur kerja konversi dan inspeksi
Versi 2.207.0
Ditambahkan
TXLSPivotCache.RefreshFromSourcemembangun cache pivot dari rentang lembar sumber: ia membaca baris header untuk menamai field, menyaring nilai berbeda dari setiap baris data ke domain shared-item per-field, mengunci tipe field dari nilai tak-kosong pertama, dan mencatat indeks shared-item untuk setiap (rekaman, field) — sehingga tabel pivot dapat dibuat secara terprogram dari rentang data alih-alih mengandalkanrefreshOnLoadExcel. Pembaca nilai berbasis-callback menjaga unit pivot bebas dari dependensi lembar kerja langsung
Versi 2.206.0
Ditambahkan
TlxCellMMUbaru (unitlxCellMMU) mengimplementasikan mesin penyimpanan sel terpadat row-major dengan run-length encoding dari run sel bertipe-sama dan kosong, serta kode tipe tagged-byte yang berfungsi ganda sebagai pemilih lebar data — sehingga kolom integer kecil biaya satu byte per sel alih-alih delapan. Mesin mengodekan angka dalam lebar terkecil yang mempertahankan nilai (int8 / int16 / int32 / integer berskala 2-desimal / 4-desimal / IEEE double), menyimpan sel string-index, boolean, kesalahan, dan kosong secara kompak, serta menyediakan APIGetValue/SetNumber/SetStringplus iterator maju. Ini adalah backend generasi-berikutnya di balik feature flag untuk APITXLSXCellsyang ada, menargetkan pengurangan working-set 10–25× pada lembar padat
Versi 2.205.0
Ditambahkan
TXLSCustomChart.GetChartInfokini mendekode ringkasan semantik dari stream rekaman bagan BIFF mentah — keluarga tipe bagan (bar, line, pie, area, scatter, radar, doughnut, surface, bubble), jumlah series, dan keberadaan legend — sehingga tipe bagan BIFF dapat dikueri secara terprogram dan konversi bagan BIGH-ke-XLSX dapat memilih keluarga target yang tepat. Penyimpanan byte-passthrough yang menjamin round-trip fidelity tidak berubah
Versi 2.204.0
Diubah
- Tabel shared-string
.xlsklasik kini menulis string ASCII-saja dalam pengodean Latin-1 terkompresi ([MS-XLS] §2.5.294fHighByte=0, satu byte per karakter) alih-alih selalu memakai UTF-16, kira-kira memperkecil ukuran SST — dan oleh karenanya berkas.xls— separuh untuk workbook kaya-ASCII
Versi 2.203.0
Ditambahkan
TlxCompoundFilebaru membaca dan menulis format kontainer Compound File Binary (OLE2) secara langsung dalam Pascal murni, tanpa dependensiole32.dll/ COMIStorage— membuka jalan bagi penanganan.xlsin-memory dan lintas-platform. Pembaca mencakup layout v3 yang HotXLS temui di alam liar (header + DIFAT dalam-header + rantai FAT + MiniFAT dan mini-stream untuk stream di bawah 4096 byte + pohon direktori); penulis memancarkan kontainer v3 minimal-tapi-valid yang cukup untuk keluaran HotXLS
Versi 2.202.0
Ditambahkan
- Status urut autofilter kini memiliki model bertype (
TXLSXSortStatedengan anakTXLSXSortCondition) yang mencakup urut-menurut nilai / warna sel / warna font / ikon, metode urut (none / stroke / pinYin), case sensitivity, urut kolom, serta custom list per-kondisi — sehingga aplikasi dapat membangun status urut secara terprogram alih-alih menyunting XML mentah, sementara passthroughSortStateXmllegasi-opaque tetap diunggulkan untuk berkas yang bukan ditulis HotXLS - Filter dinamis kini dibaca dan ditulis sebagai
TXLSXDynamicFilterTypebertype (di-atas/di-bawah rata-rata dan std-dev, hari-ini/kemarin/besok, minggu ini/terakhir/berikutnya, bulan, kuartal dan tahun, year-to-date, Q1–Q4, M1–M12) dengan batasval/maxValopsional — membuka workbook yang memakai filter dinamis tidak lagi menjatuhkannya saat simpan
Versi 2.201.0
Ditambahkan
- Bagan surface dan surface 3-D (
xlsxChartSurface/xlsxChartSurface3D) kini menjadi tipe bagan kelas-pertama — ditulis, dibaca, dan di-round-trip seperti keluarga bagan lainnya - API penulisan autoshape mencakup subset praktis dari daftar preset-geometri OOXML — segitiga, belah ketupat, jajargenjang, segi-enam, segi-delapan, panah, chevron, callout, node flowchart, bintang, hati, matahari, bulan, kurung kurawal dan siku — masing-masing memetakan ke token
prstdan shape id[MS-ODRAW]yang benar, sehingga shape yang dibuat terender dengan benar di Excel (daftar 187-preset lengkap sudah dipertahankan pada round-trip via passthrough raw-anchor)
Versi 2.200.0
Diperbaiki
- Membuka workbook yang autofilternya memakai color filter atau icon filter tidak lagi menjatuhkan filter tersebut saat simpan —
colorFilterdaniconFilterkini dibaca ke kolom bertype (TXLSXAutoFilterColumn.SetColorFilter/SetIconFilter) dan dipancarkan ulang verbatim, alih-alih hilang sebagai anak filter-column yang tak dikenal
Versi 2.199.0
Ditambahkan
TCondFormatRule.Evaluatemenjawab apakah suatu aturan conditional-formatting berlaku untuk sel tertentu, mencakup pembandingan nilai-sel, ekspresi rumus, teks mengandung/mulai-dengan/berakhir-dengan, sel kosong, dan aturan kesalahan — fondasi untuk mengueri sel mana yang sedang disorot aturan serta untuk merender hasil CF di luar Excel
Diubah
FACTdan helper faktorial internal kini memakai tabel 0!..170! yang telah dihitung sebelumnya alih-alih menghitung ulang produk O(n) pada setiap pemanggilan, mempercepatFACT, koefisien multinomial, dan jalur distribusi Poisson/Binomial/chi-square
Versi 2.198.0
Diubah
- Menyimpan lembar kerja kini mengelompokkan sel ke baris dengan satu pass hitung-lalu-isi alih-alih menumbuhkan indeks tiap baris dengan realloc-per-sel, menghapus salinan O(cells × cells-per-row) tersembunyi pada lembar besar
- Grafik dependensi rumus kini mengindeks rentang referensinya berdasarkan (sheet, row) sehingga menabur sel-kotor melakukan binary-search pita kandidat alih-alih memindai setiap rumus pada setiap sel yang berubah — semakin besar workbook dan semakin banyak lembar yang dimilikinya, semakin besar percepatan pada kalkulasi ulang
- Traversal sel row-major, terurut-kolom kini disediakan sebagai
TXLSXWorksheet.BuildRowMajorCellOrdersehingga save, clipboard, autofilter, dan konsumen terurut-baris lainnya berbagi satu traversal alih-alih menurunkannya ulang
Versi 2.197.0
Diperbaiki
- Bagan radar, stock, dan pie-of-pie/bar-of-pie tidak lagi hilang saat workbook
.xlsxyang memuatnya dibuka dan disimpan-ulang — pembaca bagan kini mengenali elemen kontainerc:radarChart,c:stockChart, danc:ofPieChartyang sudah ditulisnya, memulihkan cakupan baca/tulis yang simetris SUBTOTALdengan kode fungsi 101–111 kini mengecualikan nilai pada baris tersembunyi, danAGGREGATEkini menghormati kode opsi ignore-hidden-row-nya (2, 3, 6, 7), mencocokkan Excel alih-alih memperlakukan varian include-hidden dan ignore-hidden secara identik- Memanggil fungsi bawaan beraritas-tetap dengan lebih banyak argumen daripada yang dideklarasikan (misalnya
=SIN(1,2)) kini memunculkan#VALUE!secara terpusat alih-alih diterima oleh dispatcher
Versi 2.196.0
Diperbaiki
- Penyisipan atau penghapusan baris dan kolom kini mempartisi format-bersyarat nilai-sel dan ekspresi plus validasi data saat area target yang diubah memerlukan jangkar rumus relatif yang berbeda, sembari mempertahankan pengaturan aturan, menetapkan prioritas format-bersyarat yang unik, dan menjaga domain format-bersyarat agregat tetap utuh
Versi 2.195.2
Diubah
- Ekspor PDF kini mensubset font TrueType yang tertanam via API Windows
fontsub.dllCreateFontPackage, hanya menyimpan glyph yang benar-benar dirender dokumen alih-alih menanam seluruh.ttf— biasanya mengecilkan PDF 8–20× untuk lembar kaya-Unicode; jatuh kembali ke embedding penuh saat subsetting tidak tersedia
Versi 2.195.1
Diperbaiki
- Menyisipkan atau menghapus baris dan kolom pada mesin
.xlsklasik kini menulis-ulang setiap referensi rumus yang terdampak (rumus sel dan defined name) agar cocok dengan semantik Excel — referensi di bawah penyisipan bergeser, referensi sepenuhnya di dalam penghapusan menjadi#REF!, dan area yang tumpang-tindih sebagian menyusut — alih-alih meninggalkan koordinat basi
Versi 2.195.0
Diubah
- Menghapus kolom tabel kini mengonversi setiap token structured-reference yang terdampak menjadi
#REF!di seluruh rumus lembar kerja, rumus tabel, defined name, dan series bagan sembari mempertahankan referensi yang tak terkait dan literal string
Diperbaiki
- Menghapus seluruh tabel tidak lagi meninggalkan structured reference berkualifikasi yang menunjuk ke tabel yang tak lagi ada
- Validasi data yang diklon kini mempertahankan mode input IME-nya
Versi 2.194.0
Diubah
- Perubahan baris dan kolom kini menjaga identifier kolom tabel Excel, nama, rumus terhitung, rumus total, kolom filter, rentang filter, dan kondisi urut tetap selaras dengan tabel yang diubah
Diperbaiki
- Rumus format-bersyarat dan validasi-data kini merebasis referensi relatif dan campuran saat penghapusan menghapus area target pertamanya
- Status urut lembar kerja dan tabel kini menulis atribut valid dan membuang kondisi yang rentangnya telah dihapus
Versi 2.193.0
Diubah
- Perubahan baris dan kolom kini memperbarui rumus defined-name kompleks dan lintas-lingkup, rentang data bagan bubble, dan ambang format-bersyarat visual berbasis-rumus
- Bagan bubble dan scatter kini memulihkan rentang series sumbu-X, sumbu-Y, dan ukuran-bubble-nya saat dibuka kembali
Diperbaiki
- Target format-bersyarat dan validasi-data multi-area kini menggeser setiap area yang selamat secara independen alih-alih membiarkan daftar target lengkap tak berubah
- Jangkar Text box dan WordArt kini bergerak atau mengubah ukuran mengikuti baris dan kolom yang disisipkan dan dihapus
Versi 2.192.0
Ditambahkan
- Pembacaan langsung streaming dan traversal row-cursor dapat memilih string rich terstruktur dengan format run lengkap, phonetic run, dan properti phonetic sembari mempertahankan penyimpanan shared-string yang terbatas
TXLSDirectWriter.WriteRichStringmenulis teks berformat dan phonetic sebagai string inline atau shared string terdeduplikasi
Diubah
- Deduplikasi rich shared-string kini membedakan format run dan metadata phonetic sembari menjaga interning string biasa pada jalur cepatnya yang telah ada
Diperbaiki
- Teks phonetic dalam string inline tidak lagi disertakan dalam nilai sel yang ditampilkan
Versi 2.191.0
Ditambahkan
TXLSXRange.SetDynamicArrayFormulakini membuat rumus dynamic-array native dengan rantai metadata XLDAPR Excel yang lengkap
Diubah
- Akar dynamic-array kini berbagi satu rekaman metadata workbook yang terdeduplikasi dan salinan worksheet atau rentang lintas-workbook memetakan-ulang rekaman tersebut ke workbook tujuan
- Metadata dynamic-array yang didukung tetap tersedia saat preservation package-part yang tidak didukung dinonaktifkan, sementara metadata nilai yang tak terkait tetap dihapus
Diperbaiki
- Spill cell dynamic-array tidak lagi dimodelkan sebagai follower CSE legasi, dan mengganti atau menghapus akar tidak lagi meninggalkan indeks metadata basi
- Menghapus akar dynamic-array final kini menghapus part metadata, relasi workbook, dan entri content-type yang tak terpakai
Versi 2.190.0
Diubah
- Pembacaan langsung streaming dan traversal row-cursor kini mengembangkan follower shared-formula menjadi rumus lengkap relatif-sel sembari mempertahankan perilaku proyeksi dan memori-terbatas
Diperbaiki
- Workbook dynamic-array kini mempertahankan indeks metadata sel dan nilai, atribut kalkulasi-ulang rumus, relasi paket metadata, serta prefiks future-function yang tak berubah selama siklus buka dan simpan
- Menonaktifkan preservation bagian-tidak-diaktifkan tidak lagi meninggalkan indeks metadata lembar kerja menggantung setelah part metadata dihapus
Versi 2.189.0
Ditambahkan
- Membuka workbook XLSX kini mengembangkan follower shared-formula menjadi rumus per-sel lengkap dengan referensi relatif, absolut, campuran, rentang, dan sheet-qualified yang benar
Diperbaiki
- Follower shared-formula self-closing tidak lagi menangkap XML nilai atau rumus berikutnya, dan hasil cache-nya bertahan melalui siklus buka dan simpan
- Rumus CSE array kini mempertahankan jangkar dan hubungan follower-nya melalui perubahan struktur baris atau kolom, salinan rentang-lengkap, duplikasi lembar kerja, dan salinan lembar lintas-workbook
- Menetapkan rumus normal atau menghapus sel kini menghapus keanggotaan CSE array basi sehingga kalkulasi tidak dapat diarahkan-ulang ke jangkar array lama
- Menduplikasi hanya sebagian CSE array tidak lagi membuat referensi follower menggantung di tujuan
- Salinan rentang kini memotret sumber yang tumpang-tindih dan menggeser referensi rumus relatif, mencegah sel sumber atau jangkar array ditimpa sebelum disalin
- Perubahan baris atau kolom yang hanya memotong sebagian CSE array ditolak alih-alih diam-diam mengubah ukuran atau melepaskan array
Versi 2.188.0
Ditambahkan
TXLSDirectReader.SharedStringMemoryLimitmembatasi memori shared-string terdekode dan otomatis memigrasikan tabel lebih besar ke penyimpanan sementara terindeks delete-on-close dengan cache nilai ukuran-tetapTXLSRowCursor.SharedStringMemoryLimitmenyediakan kontrol penyimpanan shared-string terbatas yang sama untuk traversal row forward-only
Diubah
- Parsing shared-string langsung kini mempertahankan nilai whitespace-saja, CDATA, entitas XML, karakter non-BMP, item kosong, dan urutan run rich-text sembari mengecualikan teks panduan phonetic dari nilai yang ditampilkan
Diperbaiki
- Membuka workbook XLSX kini mempertahankan setiap item shared-string dalam urutan dokumen, mencegah teks duplikat atau rich string berformat berbeda dari meruntuhkan indeks sel berikutnya
- Menyimpan workbook XLSX kini mendeduplikasi rich string berdasarkan batas run dan properti format alih-alih hanya teks yang terlihat, mempertahankan format berbeda untuk sel dengan nilai tampilan yang sama
Versi 2.187.0
Ditambahkan
TXLSDirectReader.FirstRowdanLastRowmembatasi pembacaan streaming ke rentang baris berbasis-1 dan menghentikan parsing lembar kerja setelah rentang yang dimintaTXLSDirectReader.IncludeColumndanClearColumnProjectionmenyediakan proyeksi kolom waktu-konstan yang melewatkan sel tak-terpilih sebelum pendekodean nilai dan dispatch callback
Versi 2.186.0
Ditambahkan
TXLSDirectWriter.UseSharedStringsdapat mendeduplikasi teks berulang ke dalam part shared-strings OOXML dengan jumlah total dan unik yang akurat, mengurangi ukuran paket untuk data kaya-pengulanganTSimpleDomReadermenyediakan pohon XML pass-tunggal kompak untuk kueri akses-acak metadata workbook dan part paket, dengan pencarian QName dan local-name case-sensitive
Diubah
- Pembacaan XLSX langsung kini memakai dispatch elemen eksak dibantu-hash, pemanenan atribut pass-tunggal, dan pencarian kolom baris-berjalan waktu-konstan sembari mempertahankan perilaku memori streaming
- Pembangkitan XML shared-string kini memakai buffer pertumbuhan-linier untuk menghindari salinan whole-string berulang pada tabel string-distinct besar
Diperbaiki
- Ekspor rumus CSV tidak lagi menambahkan tanda sama-dengan kedua saat teks rumus sudah memuatnya
- Ekspor PDF XLSX tidak lagi memotong teks sel memakai estimasi jumlah-karakter sebelum layout
- Hash nama pembaca XML kini melacak processing instruction, atribut, dan kembali ke elemen pemiliknya tanpa mengekspos state elemen basi
Versi 2.185.1
Diperbaiki
- Menyisipkan atau menghapus baris dan kolom kini menyesuaikan referensi rumus lokal dan lintas-lembar tepat satu kali sembari mempertahankan nama fungsi dan literal teks
Versi 2.185.0
Ditambahkan
TXLSPDFExportkini menyediakan pemilihan keluaranFirstPagedanLastPageberbasis-1,PageCountlogis lengkap, serta enam overloadCalculatePageCountuntuk rentang klasik dan XLSX, lembar kerja, dan workbook tanpa membangun objek halaman PDFTXLSXWorkbook.SaveWorkbookAsHTMLmempublikasikan lembar kerja terlihat dalam satu dokumen HTML yang dapat dinavigasi dengan jangkar per-lembar yang stabil, judul dan nama lembar yang di-escape, serta opsi untuk menyertakan lembar tersembunyi atau very-hiddenTDataToXLS.BeforeRecorddapat melewatkan rekaman sebelum keluaran baris danBeforeValuedapat mentransformasi atau menekan nilai field dengan konteks dataset, detail-level, source-field, dan export-columnTXLSWorkbookViewermenyediakan komentar dan hyperlink sel-terpilih, memunculkan event hyperlink yang dikendalikan-aplikasi, mengecat indikator komentar serta font, isian, dan perataan XLSX, dan menormalisasi pemilihan serta rendering di seluruh rentang yang ter-merge
Diubah
- Contoh ConversionWorkbench kini dapat menghasilkan keluaran PDF dan mempublikasikan semua lembar kerja XLSX yang terlihat untuk target HTML, sementara contoh WorkbookViewer mendemonstrasikan navigasi merged-cell, komentar, dan aktivasi hyperlink
Versi 2.184.0
Ditambahkan
- Rentang XLS klasik dan XLSX dapat menyalin teks tabular Unicode dan HTML bergaya ke clipboard Windows melalui
CopyToClipboard, mempertahankan rumus, sel ter-merge, tautan, format tampilan, serta tab tertanam, line break, dan tanda kutip yang dikutip dengan aman TXLSXWorkbookkini mempertahankan part paket kustom yang dapat dijangkau dari relasi package-root, workbook, worksheet, atau drawing yang tidak diketahui, termasuk penanganan tabrakan relationship-ID, content type, relasi anak, pilihan kompresi, dan byte payload eksak;PreserveUnsupportedParts,UnsupportedPartCount,UnsupportedPartBytes, danClearUnsupportedPartsmenyediakan kontrol dan diagnostik- Simpan XLS klasik menyediakan callback begin, work, dan end dengan pembatalan melalui
OnProgressEx, sementaraIXLSWorkbookProgressmenyediakan diagnostik terstruktur dengan kode stabil, severity, operation, konteks sheet, native return value, dan detail eksepsi TXLSXWorkbookkini menyediakan permukaanDiagnostics,LastDiagnostic, danOnDiagnosticterstruktur yang sama untuk pelaporan simpan, buka, kalkulasi-ulang, pembatalan, dan eksepsi- Modul VBA yang telah di-parse kini mendukung penyuntingan
SourceCodedan penulisan-ulang stream modul terkompresi melalui simpan XLS klasik, penyimpanan VBA standalone, dan OOXML macro-enabled sembari mempertahankan prefix stream dan konten proyek yang tak tersentuh - Lembar kerja klasik dan koleksi shape kini menyediakan form control bertype
TXLSCheckBox,TXLSComboBox, danTXLSListBoxdengan creation helper, label, inspeksi control-kind, jangkar sel, penghapusan, serta discovery buka/simpan TXLSXRange.ApplyFormatPatchdapat menyalin komponen font, fill, border, number-format, alignment, dan protection secara selektif dengan tiling source-pattern sembari mempertahankan nilai tujuan dan format yang tak-terpilihTDataToXLSdapat mengekspor dataset master-detail terhubung secara rekursif melaluiReadDetailTablesdanIndentDetailTables, mempertahankan data link aktif, menambahkan setiap tabel detail di bawah rekaman masternya, serta mewarisi opsi field, title, dan format pada setiap levelTXLSXWorksheet.AddWordArtmembuat teks DrawingML berjangkar-sel dengan warping preset plus warna teks dan outline yang dapat dikonfigurasi, dan jalur preservation raw drawing-anchor mempertahankan shape WordArt lengkap pada siklus buka/simpan berikutnyaTXLSWorkbookViewermenambahkan viewer lembar kerja VCL untuk objek workbook klasik dan modern dengan pemuatan berkas XLS, XLSX, XLSM, template, dan ODS, teks sel berformat, gaya klasik, ukuran baris dan kolom, header, rendering gridline dan pemilihan, scrollbar, pemilihan mouse, navigasi keyboard, posisi sel, pengalihan lembar kerja, serta event pemilihan atau lembar kerja- Contoh Delphi
FeatureShowcasedanWorkbookViewerbaru mendemonstrasikan pencetakan PDF bergaya, print title, manual break, form control klasik, patch format selektif, WordArt, diagnostik, pembuatan viewer run-time, pemuatan berkas, navigasi sel, pengalihan lembar kerja, dan event viewer, dengan panduan Inggris serta topik developer-reference yang cocok
Diubah
- Ekspor PDF workbook, worksheet, dan rentang XLS klasik dan XLSX modern kini menulis setiap lembar kerja terlihat ke dalam satu dokumen, melewatkan lembar tersembunyi dan chart sheet, merender isian solid, warna font, ukuran font, penekanan bold dan italic, perataan horizontal dan vertikal, border sel eksplisit, serta gridline lembar kerja opsional, mengikuti print area, ukuran kertas, orientasi, margin, zoom, pengaturan fit-to-width, lebar kolom, tinggi baris aktual, page break baris dan kolom manual, baris dan kolom title berulang, serta header dan footer tiga-bagian dengan field halaman, total-halaman, nama-lembar, tanggal, dan waktu, mem-paginasi rentang lebar dan tinggi melintasi kedua sumbu, memancarkan sintaks numerik PDF locale-independent, serta menanam font TrueType yang memenuhi-syarat plus peta ToUnicode untuk teks di luar WinAnsi
- Callback kemajuan extended XLSX kini menerima state begin, work, dan end yang andal untuk simpan, buka, dan kalkulasi-ulang, sementara callback legasi tetap work-only dan setiap operasi mereset status pembatalan sebelumnya
- Serialisasi XLS klasik kini menyebarkan kegagalan lembar kerja, bagan, style-extension, VBA, control-stream, storage, dan output commit alih-alih melaporkan sukses, dan simpan berkas men-stage compound file lengkap sebelum menggantikan tujuan secara atomik
- Simpan berkas XLSX dan ODS kini membangun paket sementara saudara yang lengkap dan menggantikan tujuan secara atomik hanya setelah finalisasi sukses, membiarkan berkas yang ada tak berubah setelah pembatalan atau kegagalan
Versi 2.183.0
Ditambahkan
TXLSDirectWriterkini mendukung handle cell-style level-paket yang dapat dipakai-ulang dan kloning gaya tanpa buffering baris lembar kerja; indeks gaya yang sama dapat diterapkan ke sejumlah sel atau dipakai ulang di seluruh lembar kerja- Gaya sel langsung menyediakan 30 kemampuan format yang mencakup nama font, ukuran, warna BGR, bold, italic, strikeout, outline, shadow, lima mode underline, 19 pola isian dengan warna foreground/background, lima edge border berwarna independen dengan 14 gaya garis dan arah diagonal, format angka bawaan atau kustom, perataan horizontal dan vertikal, wrapping, shrink-to-fit, indentasi, rotasi teks, prefix kutipan, serta proteksi locked/hidden
- Overload bergaya tersedia untuk string, angka, boolean, tanggal, rumus, kesalahan, dan setiap tipe hasil rumus cache, memungkinkan eksportir volume-tinggi memilih gaya prebuilt berdasarkan indeks integer selama penulisan sekuensial
Diubah
- Direct writer mendeduplikasi komponen font, fill, border, dan number-format yang setara saat membangun
styles.xml, sembari mempertahankan indeks cell-style stabil yang sudah ditulis ke stream lembar kerja - Tabel gaya direct-writer yang dibangkitkan kini menyertakan isian default
nonedangray125standar sebelum isian kustom untuk kompatibilitas OOXML yang lebih ketat
Versi 2.182.0
Ditambahkan
TXLSDirectWriterkini menulis conditional formatting sembari mempertahankan profil memori tak-bergantung-jumlah-baris, dengan delapan operator nilai-sel, aturan ekspresi, aturan teks mengandung/tidak-mengandung/mulai-dengan/berakhir-dengan, aturan nilai dan persen top atau bottom, aturan di-atas atau di-bawah rata-rata, nilai duplikat dan unik, sel kosong dan tak-kosong, sel kesalahan dan tanpa-kesalahan, data bar, skala dua- dan tiga-warna, serta seluruh 17 keluarga icon-set baseline- Aturan format-bersyarat langsung mendukung prioritas eksplisit, evaluasi stop-if-true, opsi average standard-deviation dan equality, penggantian ambang ikon, tampilan icon-only dan reverse, visibilitas nilai data-bar, warna BGR, serta gaya isian diferensial, warna-font, bold, dan italic
Diubah
- Direct writer mendeduplikasi gaya diferensial yang ekuivalen di seluruh lembar kerja dan hanya menyimpan aturan dan gaya format-bersyarat, sehingga penggunaan memori berskala dengan jumlah aturan alih-alih jumlah baris lembar kerja
- Jenis ambang minimum dan maksimum data-bar otomatis dinormalisasi ke token
mindanmaxstandar pada elemen OOXML dasar untuk kompatibilitas spreadsheet yang luas
Versi 2.181.0
Ditambahkan
TXLSDirectWriterkini menulis proteksi lembar kerja dan workbook tanpa buffering data lembar kerja, termasuk 15 izin lembar kerja granular, verifier password legasi, metadata hash modern, protected range yang dapat disunting dengan password opsional atau security descriptor, kunci struktur dan window workbook, penetapan verifier raw, serta pembersihan proteksi
Diperbaiki
- Jangkar drawing yang tidak didukung kini mempertahankan setiap elemen penutup saat direkonstruksi untuk keluaran round-trip, sehingga drawing shape-saja tetap well-formed setelah buka dan simpan
- Izin proteksi lembar kerja XLSX kini mengikuti definisi flag-locked OOXML, sehingga aksi yang diizinkan menulis
0, aksi yang dilarang menulis1, dan atribut yang dihilangkan terbuka kembali dengan default skemanya - Password lembar kerja, protected-range, dan workbook XLSX legasi kini memakai algoritma verifier 16-bit yang kompatibel dengan Excel dengan konversi ANSI serta batas 15-byte
Versi 2.180.0
Ditambahkan
- Model lembar kerja XLSX kini me-round-trip elemen What-If Scenario Manager (
<scenarios>) dan Data Consolidation (<dataConsolidate>). Properti raw-XMLScenariosXmldanConsolidateXmlbaru padaTXLSXWorksheetmembawa konten dalam verbatim — penulis memancarkan elemen wrapper, pembaca meng-parse kembali anak skenario/data-consolidation. Berkas pemodelan-keuangan yang mendefinisikan skenario atau definisi konsolidasi tidak lagi kehilangannya pada round-trip
Versi 2.179.0
Ditambahkan
- Fungsi helper
XlsxBuildNumFmtbaru membangun kode format angka OOXML dari properti semantik —Decimals,Thousands(separator),NegativeRed(negatif merah),CurrencySymbol, danPercent. Pemanggil tidak lagi perlu menulis manual string format seperti"$#,##0.00;[Red]-$#,##0.00"— builder membangunnya dari parameter sederhana. Dirancang untuk dipakai denganCell.NumberFormatatauWorkbook.NumberFormats.Add
Versi 2.178.0
Ditambahkan
- Model lembar kerja XLSX kini me-round-trip VBA code name (
<sheetPr codeName="..."/>), penting untuk interop VBA di mana proyek VBA mereferensikan lembar kerja berdasarkan code name. PropertiCodeNamebaru padaTXLSXWorksheet - Komentar kini mendukung toggle visibilitas
AlwaysShowpadaTXLSXComment— saat True balon komentar selalu terlihat (toggle "Show/Hide Comment" per-komentar Excel), bukan hanya saat hover - Validasi data kini me-round-trip atribut IME mode (
imeMode) padaTXLSXDataValidation. Enum 11-nilai mengendalikan perilaku metode-input CJK saat memasuki sel (noControl / off / on / hiragana / fullKatakana / dsb.). Penting untuk berkas lokal Jepang/Korea/Mandarin - Model lembar kerja memperoleh properti
PaneStateuntuk atribut pane-state pada<pane>di luar penanganan frozen-mode yang ada — mendukung statusfrozenSplit(frozen-lalu-dapat-di-scroll) dansplit
Versi 2.177.0
Ditambahkan
- Tiga fungsi lembar kerja yang sebelumnya terdaftar-tapi-tak-diimplementasikan kini memiliki dispatch penuh:
DOLLAR(teks berformat mata uang),FIXED(teks desimal-tetap dengan penindasan koma opsional), danAREAS(jumlah area dalam referensi). Sebelumnya ketiganya terdaftar diInitFuncHashtetapi tak memiliki case calc-engine — mengevaluasi=DOLLAR(...)diam-diam mengembalikan hasil yang salah - Model lembar kerja XLSX kini me-round-trip skala zoom per-view-type (
zoomScaleNormal/zoomScalePageLayoutView/zoomScaleSheetLayoutView), warna gridline (sheetView color), serta flag tampilan sheet-view (showFormulas/showZeros). Properti baru padaTXLSXWorksheet:ZoomNormal,ZoomPageLayout,ZoomSheetLayout,GridColor,ShowFormulas,ShowZeros - Arah ringkasan outline kini di-round-trip. Properti
SummaryBelow,SummaryRight, danShowOutlineSymbolsbaru padaTXLSXWorksheetmengontrol apakah baris/kolom ringkasan muncul di bawah/kanan detail dan apakah simbol outline terlihat. Penulis memancarkan<outlinePr>di dalam<sheetPr>; pembaca meng-parse-nya kembali - calcPr workbook kini membawa atribut
forceFullCalcdancalcCompletedberdampingan dengan triocalcId/fullCalcOnLoad/calcMode/iterateyang ada
Versi 2.176.0
Ditambahkan
- Mesin rumus XLSX kini menyelesaikan referensi tabel terstruktur sebelum kompilasi. Metode
ResolveStructuredRefsbaru padaTXLSXWorkbookmemindai teks rumus untuk polaTableName[ColumnSpec]dan menggantinya dengan referensi rentang A1 konkret menggunakan koleksiTXLSXTableworkbook. Spec yang didukung mencakup rentang data kolom (Sales[Qty]), kolom baris-berjalan (Sales[@Total]), data lengkap (Sales[#Data]/Sales[#All]), header (Sales[#Headers]), serta baris total (Sales[#Totals]). Resolusi berjalan otomatis di dalamGetCompiledFormula— rumus yang ada tak terdampak karena identifier non-tabel dibiarkan verbatim. Sebelumnya referensi terstruktur menyebabkan kompilasi rumus gagal
Versi 2.175.0
Ditambahkan
- Mesin rumus kini mendukung kompilasi rumus gaya referensi R1C1. Metode
GetCompiledFormulaR1C1baru padaTXLSCalculator(danGetCompiledR1C1padaTXLSFormula) menerima rumus tertulis dalam notasi R1C1 (R2C3untuk absolut,R[-1]C[2]untuk relatif,RCuntuk sel saat ini) dan mengompilasinya dengan lebih dulu mengonversi ke notasi A1 memakai baris/kolom sel rumus. Fungsi mandiriR1C1ToA1melakukan konversi — ia mendeteksi penandaR/Cyang berdiri-sendiri (bukan bagian dari nama fungsi seperti ROUND), meng-parse offset bertanda dalam kurung opsional, dan menghasilkan referensi A1 yang ekuivalen. Literal string dan identifier dilewati. Sebelumnya hanya rumus gaya A1 yang dapat dikompilasi
Versi 2.174.0
Ditambahkan
- Keluaran AutoFilter
TXLSDirectWriterkini mendukung kolom filter lembar kerja dan tabel, filter nilai, filter kosong, filter grup-tanggal, filter pembandingan kustom, filter dinamis, filter top/bottom, flag tombol filter, status urut, kondisi urut, escaping XML, serta penindasan rentang filter lembar kerja/tabel duplikat saat streaming berkas XLSX
Versi 2.173.0
Ditambahkan
- Keluaran tabel
TXLSDirectWriterkini mendukung komentar tabel, jumlah baris total, label baris-total kolom, fungsi baris-total kolom, rumus calculated-column, rumus baris-total, serta escaping XML untuk metadata tabel-kolom saat streaming berkas XLSX
Versi 2.172.0
Ditambahkan
TXLSDirectWriterkini menulis part tabel Excel sembari streaming berkas XLSX, termasuk relasi tabel lembar kerja, content type part tabel, rentang tabel, nama kolom, flag baris-header dan baris-total, serta flag tampilan gaya tabel bawaan tanpa membangun model objek workbook lengkap
Versi 2.171.0
Ditambahkan
TXLSDirectWriterkini menulis validasi data lembar kerja sembari streaming berkas XLSX, termasuk list, whole-number, desimal, tanggal, waktu, panjang-teks, rumus-kustom,sqrefarbitrer, prompt, error-alert, allow-blank, dropdown, serta flag pesan input/error tanpa membangun model objek workbook lengkap
Versi 2.170.0
Ditambahkan
TXLSDirectWriterkini menulis defined name workbook dan sheet-local sembari streaming berkas XLSX, termasuk nama tersembunyi, komentar, rentang absolut yang dibangkitkan, print area, baris print title, kolom print title, print title gabungan, referensi nama-lembar terkuotasi, escaping XML, serta semantik penggantian untuk setter print-name berulang tanpa membangun model objek workbook lengkap
Versi 2.169.0
Ditambahkan
TXLSDirectWriterkini menulis hyperlink lembar kerja sembari streaming berkas XLSX, termasuk relasi URL eksternal, mailto, dan berkas, lokasi lembar internal, teks tampilan, tooltip, rentang hyperlink sel-tunggal atau multi-sel, normalisasi URLwww.polos, escaping XML, serta target relasi percent-encoded tanpa membangun model objek workbook lengkap
Versi 2.168.0
Ditambahkan
TXLSDirectWriterkini menulis metadata print dan sheet-view sembari streaming berkas XLSX, termasuk toggle tampilan gridline dan header baris/kolom, margin halaman, teks header/footer ganjil, print gridline dan heading, pemusatan halaman, ukuran kertas dan orientasi landscape, dimensi fit-to-page, serta page break baris atau kolom manual tanpa membangun model objek workbook lengkap
Versi 2.167.0
Ditambahkan
TXLSDirectWriterkini menulis metadata layout lembar kerja sembari streaming berkas XLSX, termasuk ukuran kolom dan baris default, lebar kolom kustom, baris dan kolom tersembunyi, rentang ter-merge, rentang AutoFilter, frozen pane, warna tab lembar, serta sheet view kanan-ke-kiri tanpa membangun model objek workbook lengkap
Versi 2.166.0
Ditambahkan
- Alur kerja XLSX streaming kini mencakup daftar nama-lembar tanpa pemindaian lembar kerja, pemilihan lembar row-cursor berbasis-nama, streaming tanggal numerik raw, pemakaian-ulang direct writer, penulisan sel kesalahan, serta penulis hasil-rumus-cache untuk nilai angka, string, Boolean, tanggal, dan kesalahan
Versi 2.165.0
Diperbaiki
TXLSDirectReader.ReadStreamkini memulihkan posisi stream pemanggil setelah pemindaian langsung, mencocokkan kontrak stream terdokumentasi dan mengizinkan aplikasi memakai ulang stream yang sama setelah pass pembacaan langsung
Versi 2.164.0
Ditambahkan
- Ekspor dataset
TDataToXLSkini mendukung string listIncludeFieldsdanExcludeFields. Aplikasi dapat melakukan whitelist field yang diekspor, menghilangkan kolom sensitif, serta menjaga header, baris data, lebar kolom, dan callback ekspor tetap selaras dengan field set terpilih
Versi 2.163.0
Ditambahkan
- Ekspor CSV memperoleh pengutipan teks yang dapat dikonfigurasi di seluruh mesin XLS dan XLSX.
TXLSWorkbookkini menyediakanCSVEmitFormulasdanCSVQuoteAllStrings, danTXLSXWorkbookmenambahCSVQuoteAllStrings. Saat diaktifkan, ekspor rumus menulis teks rumus dan field string dikutip sementara field numerik, tanggal, Boolean, Null, dan Empty mempertahankan aturan pengutipan normal
Versi 2.162.0
Ditambahkan
- Mesin XLSX memperoleh sistem event kemajuan yang dapat dibatalkan. Callback
OnProgressExbaru padaTXLSXWorkbookmemunculkan bersamaOnProgressyang ada dengan tiga peningkatan: (1) parameterTXLSXProgressState(ppsBegin/ppsWork/ppsEnd) yang mengurung setiap fase sehingga UI tahu kapan operasi dimulai dan selesai; (2) parameter varAbort: Booleanyang memungkinkan callback membatalkan operasi berjalan di tengah-stream — loop baca/tulis/calc memeriksaWorkbook.Aborteddan keluar secara bersih; (3) fasexlsxProgressExportingbaru untuk operasi ekspor (HTML/RTF/CSV/ODS). Metode helperFireProgressmemusatkan dispatch dual-callback. FlagFAborteddireset pada awal setiap operasi tingkat-atas (Open / SaveAs / Recalculate)
Versi 2.161.0
Ditambahkan
- Model bagan XLSX kini mendukung empat elemen bagan baru untuk kompatibilitas Excel yang lebih kuat. Tabel data bagan (
c:dTable):TXLSXChartmemperoleh toggleShowDataTable+ShowDataTableKeys— saat diaktifkan penulis memancarkan elemen data-table di dalam plot area sehingga Excel merender data sumber sebagai grid di bawah sumbu bagan. Up/down bars + hi-low lines (elemen bagan stock/OHLC):TXLSXChartmemperolehHasUpDownBars+UpDownGapWidthdanHasHiLowLines— penulis memancarkanc:upDownBarsdanc:hiLowLinesdi dalam elemen bagan (bagan line/stock). Kontrol tampilan 3D:TXLSXChartmemperolehRotation3DX/Rotation3DY/Elevation3D/Perspective3D/RightAngleAxes3D— penulis memancarkanc:view3Ddi tingkat bagan saat properti 3D apa pun berbeda dari default. Sebelumnya tak satu pun elemen ini dipancarkan, sehingga bagan yang dibangun dengan data table, elemen stock-chart, atau tampilan 3D kehilangannya pada round-trip
Versi 2.160.0
Ditambahkan
- Referensi rumus kini menyesuaikan otomatis saat baris atau kolom disisipkan atau dihapus pada mesin XLSX. Metode
ShiftSheetGeometry— dipanggil olehInsertRows/DeleteRows/InsertCols/DeleteCols— kini menelusuri setiap sel rumus yang selamat dan menulis-ulang referensi A1-nya untuk merefleksikan perubahan struktural. Pemindai-teksXlsxAdjustFormulaRowColRefsbaru mendeteksi referensi sel-tunggal (A1,$B$2) dan referensi rentang (A1:B3), menggeser komponen baris/kolom-nya melewati titik penyisipan, dan mengonversi referensi yang dihapus menjadi#REF!. Baik referensi relatif maupun absolut digeser (mencocokkan perilaku Excel). Sebelumnya rumus diam-diam dibiarkan menunjuk ke sel yang salah setelah perubahan struktural
Versi 2.159.0
Ditambahkan
- Status urut autofilter kini me-round-trip melalui mesin XLSX.
TXLSXWorksheetmemperoleh propertiSortStateXmlyang membawa XML dalam mentah dari elemen<sortState>OOXML (arah urut kolom, case sensitivity, metode urut, dan setiap<sortCondition>beserta flag descending + ref-nya). Penulis memancarkan elemen setelah<autoFilter>; pembaca meng-parse kembali atribut dan kondisi urut. Sebelumnya status urut diam-diam dijatuhkan saat baca dan tak pernah ditulis - Pengaturan phonetic/ruby CJK kini me-round-trip melalui mesin XLSX.
TXLSXWorksheetmemperolehPhoneticFontId,PhoneticType(hiragana / katakana / fullWidthKatakana / noConversion), danPhoneticAlignment(left / center / distributed). Penulis memancarkan<phoneticPr>setelah<sheetData>; pembaca meng-parse kembali atributnya. Sebelumnya elemen phonetic diam-diam dijatuhkan saat baca — berkas pasar-Jepang kehilangan pengaturan furigana reading-aid-nya
Versi 2.158.0
Ditambahkan
- Mesin XLSX kini me-round-trip tabel gaya-sel bernama (
<cellStyles>). KelasTXLSXNamedStylebaru + koleksiTXLSXNamedStylespadaTXLSXWorkbookmembawa permukaan lengkap:Name,XfId,BuiltInId,CustomBuiltIn,Hidden,BuiltinLevel. Penulis memancarkan satu<cellStyle>per entri saat koleksi tak-kosong; pembaca meng-parse-nya kembali. Sebelumnya penulis hardcode entri"Normal"tunggal dan pembaca membuang semua gaya bernama, sehingga berkas dengan gaya "Good"/"Bad"/"Total"/kustom-bernama kehilangan nama-nama itu pada round-trip
Versi 2.157.0
Ditambahkan
- Mesin XLSX kini me-round-trip elemen
<calcPr>lengkap, bukan hanya toggle kalkulasi-iteratif.TXLSXWorkbookmemperolehCalcId(identifier mesin calc yang Excel pakai untuk menentukan apakah nilai cache basi),FullCalcOnLoad(memaksa Excel melakukan full recalc saat buka — kritis untuk workbook yang dihasilkan mesin non-Excel), danCalcMode(auto / manual / autoNoTable). Penulis memancarkan atribut yang cocok pada<calcPr>; pembaca meng-parse-nya kembali. Sebelumnya hanyaiterate/iterateCount/iterateDeltayang ditangani, dan sisanya diam-diam dijatuhkan
Versi 2.156.0
Ditambahkan
- Evaluator rumus kini mengimplementasikan 37 fungsi lembar kerja yang sebelumnya terdaftar (ptg ditetapkan di InitFuncHash) namun tak punya implementasi dispatch — mereka jatuh ke
#NAME?. Implementasi baru membentang lima keluarga fungsi: Regresi (FORECAST,LINEST,TREND,GROWTH,LOGEST,CORREL,PEARSON,SLOPE,INTERCEPT,RSQ,STEYX), Depresiasi (SLN,SYD,DB,DDB,VDB), Statistik Deskriptif (AVEDEV,DEVSQ,KURT,SKEW,GEOMEAN,HARMEAN,TRIMMEAN,FREQUENCY), Array Pairwise (SUMXMY2,SUMX2MY2,SUMX2PY2), dan Kombinatorial/Matematika (COMBIN,PERMUT,FACT,QUOTIENT,ROMAN,DEGREES,RADIANS,STANDARDIZE). Fungsi regresi memakai penyelesai least-squares; fungsi depresiasi mengimplementasikan metode straight-line, sum-of-years'-digits, dan declining-balance; fungsi statistik-deskriptif menghitung mean absolute deviation, kurtosis, skewness, mean geometrik/harmonik/trimmed; serta fungsi pairwise menghitung jumlah selisih-kuadrat antara dua rentang berukuran-sama. HelperCollectRangeValuesbaru padaTXLSCalculatormengekstrak nilai numerik dari argumen rentang untuk fungsi stat
Versi 2.155.0
Ditambahkan
- Evaluator rumus kini mendukung lima nama kompatibilitas statistik dan engineering tambahan:
ERFC,ERFC.PRECISE,BINOM.INV,CHI.INV.RT, danF.TEST.ERFCmelengkapi seri error-function yang ada,BINOM.INVmencari ambang CDF binomial,CHI.INV.RTmengalias inverse chi-square ekor-kanan, danF.TESTmengembalikan p-value variansi-sampel ekor-dua
Versi 2.154.0
Ditambahkan
- Evaluator rumus kini menyelesaikan referensi lintas-workbook melalui callback
OnGetExternalValuebaru padaTXLSCalculator. Saat referensi rentang 3D menunjuk ke workbook eksternal ([1]Sheet1!A1), evaluator merutekan melalui callback alih-alih mengembalikan#REF!. Mesin XLSX menyambung callback ini keGetExternalCellValue, yang memetakan indeks SupBook + indeks sheet ke cache<sheetDataSet>TXLSXExternalLinkyang cocok dan mendekode nilai sel cache berdasarkan atribut tipe OOXML-nya (numerik / boolean / string / error). Sebelumnya rumus lintas-workbook mengembalikan#REF!tanpa-syarat; infrastruktur callback kini mengizinkan mesin apa pun (BIFF8, XLSX, atau host kalkulator kustom) menyediakan nilai eksternal - Evaluator rumus kini melakukan broadcasting array element-wise pada operator biner (
+/-/*///^). Saat salah satu operan adalah larik varian 1D atau 2D (mis. hasil fungsi-matriks, rentang tumpah, atau operan CSE array), operator diterapkan elemen-demi-elemen; operan skalar disiarkan ke setiap elemen operan array. HelperApplyArrayBinaryOpbaru menangani validasi bentuk, broadcast skalar, serta propagasi pembagian-dengan-nol. Aritmetika skalar legasi tak berubah — jalur array hanya aktif saat setidaknya satu operan adalah larik varian - Evaluator rumus kini mengenali fungsi
TABLE(What-If Analysis DataTable). Excel menyimpan data table sebagai rumus CSE array yang body-nyaTABLE(rowRef, colRef); sebelumnyaTABLEtak dikenali dan jatuh ke#NAME?. Fungsi didaftarkan dengan ptg sintetik (ftabTABLE = 4232) sehingga me-round-trip melalui pengodean rumus BIFF8, dan saat evaluasi mengembalikan nilai placeholder (0) — hasil nyata telah dihitung Excel sebelumnya dan disimpan sebagai nilai sel cache, sehingga HotXLS tidak mengevaluasi-ulang logika substitusi
Versi 2.153.0
Ditambahkan
- Model bertype PivotTable kini membawa properti bertype sumbu-halaman (Hier / Caption / Name), lingkup auto-sort, serta hook round-trip raw-XML untuk
<formats>dan<extLst>yang diperlukan untuk kompatibilitas Excel yang lebih penuh.TXLSPivotFieldmemperolehPageHier/PageCaption/PageName(F16 — nama hierarki OLAP + caption sumbu-halaman + nama tampilan) danAutoSortScope(F20 — referensi rentang A1 yang menyemat sel yang Excel pakai untuk auto-sort item field);TXLSPivotTablememperolehFormatsXml/ExtLstXml(F17 — round-trip raw inner-XML untuk blok override CF / format-angka<formats>dan blok slicer / timeline / x14<extLst>, dipancarkan verbatim saat diset sehingga round-trip aman bahkan lintas versi mesin). Penulis XLSX memancarkan atribut<pageField hier=... cap=... name=.../>yang cocok, anak<autoSortScope>dari<pivotField>, serta blok<formats>+<extLst>sebelum sentinel penutup - Tracer rumus kini mencatat snapshot operand-stack per-langkah, memungkinkan debugger "Evaluate Formula" step-through yang sesungguhnya.
TXLSFormulaStepmemperolehStepKind(push / reduce / function),StackBefore/StackAfter(snapshot dipisah-koma dari operand stack saat setiap langkah dimulai / selesai), sertaTokenStart/TokenEnd(rentang karakter berbasis-1 yang menyemat langkah kembali ke rumus sumber).TXLSFormulaTracermemperolehTraceReversed(mengembalikan langkah yang sama dalam urutan evaluasi terbalik — berguna untuk UI step-back yang berjalan dari hasil akhir menuju operan asli) serta propertiStepCount. Sebelumnya tracer hanya mencatat Depth / Source / Expression / Value tanpa state stack - Ekspor HTML kini menanam gambar per-sel via callback
OnCellImagebaru padaTXLSHTMLExportserta opsixhImagesbaru. Saat opsi diset dan callback tersambung, eksportir meminta implementor fragmen<img>tiap sel (biasanya data-URI Base64) dan menambahkannya setelah teks sel. Ini memisahkan eksportir dari penyimpanan gambar BIFF8 mesin XLS (yang berada di rekaman MsoDrawing per-lembar) sehingga eksportir tak harus meng-parse jangkar sendiri. Ekspor HTML mesin XLSX sudah menanam gambar; ini menutup celah untuk mesin XLS - Import RTF kini menerapkan properti karakter (bold / italic / underline / strikethrough / size) dari control word RTF ke font sel tujuan.
TXLSRTFImportmelacak\b/\i/\ul/\strike/\fsdi seluruh dokumen dan mendorong format run dominan ke XF sel saat commit. PropertiImportCharFormatbaru (default True) meng-toggle perilaku; set False untuk memulihkan import teks-saja legasi. Sel multi-run diruntuhkan ke satu XF (run aktif terakhir menang) karena API sel mesin XLS adalah level-sel, bukan per-fragmen — namun ini jauh lebih baik daripada menjatuhkan semua format, yang merupakan perilaku importer legasi - Kelas
TXLSHTMLImportbaru meng-parse tabel HTML menjadi sel lembar kerja. Menelusuri<table>pertama dalam sumber, memancarkan satu baris lembar kerja per<tr>dan satu sel per<td>/<th>. Menghormaticolspan/rowspan(merge gaya Excel), mengupas tag di dalam sel (meruntuhkan format bersarang menjadi teks polos), mendekode lima entitas karakter standar (&/</>/"/'/ ) serta bentuk numerik&#NNN;/&#xNN;, dan memaksa string numerik bersih menjadi Double sehingga tabel terimport tetap dapat dihitung. Dirancang untuk keluaran yang HotXLS sendiri hasilkan (SaveAsHTML) plus tabel HTML kualitas copy-paste umum; bukan parser HTML5 penuh
Versi 2.152.0
Ditambahkan
- Tabel XLSX kini mempertahankan metadata total level-kolom dan rumus tabel.
TXLSXTablemenyediakanColumnTotalsRowFunctions[],ColumnTotalsRowLabels[],ColumnCalculatedColumnFormulas[], danColumnTotalsRowFormulas[];SaveAsmemancarkan XML kolom-tabeltotalsRowFunction,totalsRowLabel,calculatedColumnFormula, dantotalsRowFormulayang cocok,Openmembacanya kembali, dan klon tabel mempertahankannya
Versi 2.151.0
Ditambahkan
- Model bertype PivotTable kini membawa koleksi filter per-field, toggle multi-select, permukaan discretePr + groupItems fieldGroup, serta model calculated item / calculated member yang diperlukan untuk kompatibilitas PivotTable yang lebih penuh.
TXLSPivotFieldmemperoleh koleksiTXLSPivotFiltersbertype (tiap entri membawaFilterTypedi seluruh enum OOXMLST_FilterTypeberanggota-80 — keluarga count / percent / sum / caption / value / date — plusValue1/Value2/StrValue1/StrValue2,EvalOrder,DataField,MemberPropertyId,Name,Description), toggleMultipleItemSelectionAllowed(F9), serta koleksiTXLSPivotCalculatedItem(F14).TXLSPivotCacheFieldmemperolehDiscreteIndices[]+AddDiscreteIndexdanGroupItemLabels[]+AddGroupItemuntuk blok discretePr + groupItems fieldGroup (F13).TXLSPivotTablememperoleh koleksiTXLSPivotCalculatedMember(F14). Penulis XLSX memancarkan<pivotField multipleItemSelectionAllowed="1">yang cocok, blok per-field<filters><filter .../>, elemen<fieldGroup><discretePr>...</discretePr><groupItems>...</groupItems></fieldGroup>, blok per-field<calculatedItems>, serta blok level-tabel<calculatedMembers>— sehingga pivot yang dibangun terprogram dengan filter / multi-select / grouping / calculated item me-round-trip
Versi 2.150.0
Ditambahkan
- Defined name kini menjaga teks rumusnya tetap valid saat lembar kerja yang direferensikannya dihapus atau diubah nama. Menghapus lembar menulis-ulang setiap qualifier
SheetN!di dalam rumus defined name menjadi#REF!(mencocokkan perilaku Excel); mengubah nama lembar menulis-ulang qualifier ke nama baru. Sebelumnya teks rumus tetap menunjuk ke nama lembar yang tak ada, yang kemudian Excel tandai sebagai broken link saat dibuka kembali - Model bertype PivotTable kini membawa urutan sort level-field serta toggle layout, plus atribut layout / tampilan level-tabel yang diperlukan untuk kompatibilitas layout PivotTable yang lebih penuh.
TXLSPivotFieldmemperolehSortType(manual / ascending / descending),Compact,Outline,SubtotalTop,DragToRow/DragToCol/DragToPage/DragToData,ShowAll,InsertBlankRow,NumFmtId;TXLSPivotTablememperolehCompact/CompactData/Outline/OutlineData/Indent/ShowEmptyRow/ShowEmptyCol/ShowHeaders/ShowDrill/EnableDrill/FieldListSortAscending/GridDropZonesplusRowHeaderCaption/ColHeaderCaption/ErrorCaption/MissingCaption/ShowError/ShowMissingserta pasangan layout sumbu-halamanRowPageCount/ColPageCount. Penulis XLSX memancarkan atribut<pivotField sortType=... compact=... outline=...>dan<pivotTableDefinition indent=... outline=... showEmptyRow=...>yang cocok serta elemen<location rowPageCount=... colPageCount=.../>sehingga pivot yang dibangun terprogram membawa layout yang diatur-pengguna alih-alih default Excel - Metode
FormulaIsVolatilebaru padaTXLSWorkbookmelaporkan apakah suatu rumus akan memaksa kalkulasi-ulang pada setiap pass calc — yaitu ia memanggil fungsi volatile (NOW / RAND / TODAY / OFFSET / INDIRECT) atau membawa referensi yang tak dapat diselesaikan. Probe berbagi extractor dependensi yang sama yang dipakai mesin recalc, sehingga jawabannya mencocokkan apa yang sebenarnyaRecalculatelakukan. Pemanggil dapat memakainya untuk menandai sel bagi UI verifikasi, mengisi set volatile calc-chain pada workbook baru, atau melewatkan cache hasil rumus yang baru saja dimasukkan
Versi 2.149.0
Ditambahkan
- Cache PivotTable kini dapat disegarkan dari rentang sumbernya secara terprogram. Metode
RefreshPivotCache(ACacheId)baru padaTXLSXWorkbookmemindai-ulang rentang sumber cache, membangun-ulang domain shared-item per-field (mendeduplikasi-ulang nilai dan menurunkan-ulang batas per-tipe), serta menulis-ulang indeks item per-rekaman. Sebelumnya HotXLS mengandalkan flagrefreshOnLoad="1"hardcoded dan menunda seluruh pekerjaan refresh ke Excel pada bukaan berikutnya; pipeline terprogram kini dapat menyegarkan in-process
Versi 2.148.0
Ditambahkan
InsertColspada mesin XLSX kini mewarisi lebar kolom dari tetangga kirinya, mencocokkan perilaku default Excel untuk "insert column". Sebelumnya kolom yang disisipkan mengambil lebar default workbook, menghasilkan celah fidelity yang terlihat setelah dibuka kembali- Mesin XLSX memperoleh helper convenience outline-collapse
ToggleColGrouped/ToggleRowGroupedpadaTXLSXWorksheet, yang menelusuri pohon outline dan menciutkan atau mengembangkan grup pada level tertentu. Flag menciut itu sendiri sudah di-round-trip; ini menambahkan API convenience walk-the-tree yang hilang
Versi 2.147.0
Ditambahkan
- Ekspor HTML kini memancarkan jangkar
<a name>pada sel yang merupakan target hyperlink-internal, sehingga hyperlink#SubAddressterselesaikan dengan benar saat pembaca mengkliknya. Sebelumnya tautan dipancarkan tetapi target tak punya jangkar, sehingga lompat internal terselesaikan ke nihil - Ekspor CSV memperoleh properti
CSVEmitFormulaspadaTXLSXWorkbook. Saat True, sel rumus mengekspor teks rumusnya (=SUM(A1:A2)) alih-alih nilai terhitung — berguna untuk debugging serta pipeline yang re-import ke mesin berbeda - URL hyperlink eksternal kini di-percent-encoded saat tulis (
XlsxEncodeHyperlinkUrl): spasi, kurung sudut, kutipan, kurung kurawal, pipe, backslash, caret, dan backtick dikodekan sebagai%XXpada atribut<Relationship Target="..."/>sehingga berkas terbuka dengan benar di setiap browser. Sekuensi percent-encoded yang ada (%20) dipertahankan apa adanya - Info gaya PivotTable kini membawa permukaan
pivotTableStyleInfolengkap:StyleName,ShowRowHeaders,ShowColHeaders,ShowRowStripes,ShowColStripes,ShowLastColumnpadaTXLSPivotTable. Penulis XLSX memancarkan elemen yang cocok sehingga pivot yang dibangun terprogram membawa gaya banding pilihan-pengguna alih-alih default hardcoded - Metode
CalculateAndVerifybaru padaTXLSXWorkbookmengevaluasi-ulang setiap sel rumus dan membandingkan hasil terhitung terhadap nilai cache sel. Mengembalikan jumlah ketidakcocokan (0 = semua nilai cache cocok dengan komputasi segar mesin; rumus volatile dikecualikan). Berguna untuk QA saat memindahkan workbook antar mesin atau memvalidasi bahwa writer tak merusak nilai cache
Versi 2.146.0
Ditambahkan
- Mesin XLSX kini mendukung kalkulasi circular-reference iteratif (mode calc iteratif Excel). Tripel properti
Iterate/IterateCount/IterateDeltabaru padaTXLSXWorkbookmengendalikan perilaku: saatIterate=Truedan siklus referensi terdeteksi selamaRecalculate, mesin mengevaluasi-ulang sel anggota-siklus hinggaIterateCountkali (default 100) atau sampai perubahan setiap sel< IterateDelta(default 0.001), alih-alih mengembalikan#REF!. Pengaturan me-round-trip melalui elemen OOXML<calcPr iterate="1" iterateCount="N" iterateDelta="X"/>. Model keuangan dengan referensi sirkular disengaja (interest-on-interest, alokasi sirkular) kini konvergen alih-alih error - Field cache PivotTable kini membawa model grouping untuk pengelompokan rentang-numerik dan hierarki-tanggal.
TXLSPivotCacheFieldmemperolehHasGroup+GroupStartNum/GroupEndNum/GroupInterval(rentang numerik) danGroupByDate/GroupDays/GroupMonths/GroupQuarters/GroupYears/GroupHours/GroupMinutes/GroupSeconds/GroupStartDate/GroupEndDate(tanggal). Penulis XLSX memancarkan elemen<fieldGroup><rangePr groupBy="range|days|months|..."/>sehingga pivot yang dibangun terprogram dengan field terkelompok mencocokkan keluaran Excel - Ekspor HTML kini memancarkan endnote komentar. Saat
xhCommentsberada dalam opsi ekspor, setiap sel berkomentar memperoleh link superskrip[n], dan teks komentar lengkap (author + body) didaftarkan sebagai seksi endnote setelah tabel dengan back-anchor ke sel. Sebelumnya komentar hanya tersedia via atributtitle=sel, yang tak terlihat saat dicetak atau di-copy-paste
Versi 2.145.0
Ditambahkan
- Literal kesalahan rumus BIFF8 (token
tErr) kini didekode ke item sintaksSA_ERRORbertype alih-alih menggagalkan parse rumus. Sel yang menyimpan=#N/A(atau salah satu dari tujuh konstanta kesalahan Excel) sebelumnya menyebabkan seluruh rumus dijatuhkan saat baca; byte kesalahan kini me-round-trip melalui baca → evaluasi → tulis dan direkonstruksi ke bentuk teksnya (#NULL!,#DIV/0!,#VALUE!,#REF!,#NAME?,#NUM!,#N/A) via helperXlsErrorToStringbaru - Token
tIsect $0FBIFF8 (operator implicit intersection) kini didekode dalam penerjemah rumus-binari, membangun nodeSA_ISECTyang sama yang dihasilkan parser teks untuk@. Sebelumnya rumus binari yang memuattIsectakan gagal di-parse - Conditional formatting data bar kini memancarkan blok ekstensi
x14Excel 2010+ diextLstlembar kerja saat model membawa field x14 non-default apa pun (warna isian negatif, gradient off, warna sumbu, arah, border).BuildDataBarExtXmlbaru membangun elemenext<x14:conditionalFormattings>dengan prioritas yang cocok, pasangan cfvo, warna isian + negatif + sumbu, serta atribut gradient/border/direction/negativeBarColorSameAsPositive
Versi 2.144.0
Ditambahkan
- Mesin XLSX kini dapat menulis workbook terenkripsi Agile (
TXLSXWorkbook.SaveAsEncryptedAgile), menutup celah kompatibilitas baca/tulis bernilai-tinggi. Agile adalah apa yang Excel 2010+ tulis secara default untuk berkas .xlsx terproteksi-password; HotXLS sebelumnya dapat membaca Agile tetapi hanya menulis Standard Encryption (AES-128). Pipeline tulis baru mencerminkan jalur decrypt yang ada: hashing password SHA-512 dengan spin count 100000-iterasi, enkripsi paket per-segment AES-256-CBC, kunci perantara yang dihasilkan secara acak yang dibungkus per tiga block key spec-pinned, serta descriptor XML<encryption>lengkap yang membawa verifier terenkripsi + blob kunci. Keluaran byte-faithful terhadap apa yang Excel hasilkan dan me-round-trip bersih melaluiXlsLoadAgileEncryptedFile(diverifikasi via tes: password benar terdecrypt, password salah ditolak) - Primitif kriptografi baru mendasari jalur tulis Agile:
XlsHMACSHA512(RFC 2104, diperlukan untuk elemendataIntegrity),XlsBase64Encode(encoder RFC 4648 yang mencerminkan decoder yang ada), sertaAESEncryptCBC(encrypt AES-CBC untuk ukuran kunci apa pun 128/192/256, inverse dariAESDecryptCBCyang ada). Unit AES kini mengimporaes_encrypt_key192/aes_encrypt_key256dari Gladman obj (sebelumnya hanya encrypt 128-bit yang tersedia)
Versi 2.143.0
Ditambahkan
- Evaluator rumus kini meng-parse dan mengevaluasi operator explicit intersection
@(sintaks dynamic-array Excel 365, mis.=A2:A4 @ B2:B4). Lexer memancarkan tokenLT_ISECTbaru untuk simbol@, parser precedence membangun nodeSA_ISECT(mengikat lebih erat dari^, lebih longgar dari%), dan evaluatorIntersectRangesbaru menyelesaikan kedua operan sebagai rentang dan mengembalikan nilai sel perpotongan tunggal — aturan implicit-intersection Excel. Serializer token BIFF memancarkantIsect $0Fsehingga operator me-round-trip melalui XLS, dan jalur rekonstruksi teks-rumus memancarkan bentuk implicit-space. Sebelumnya rumus seperti itu gagal di-parse - Encoder Base64 standar (
XlsBase64Encode) kini tersedia, mencerminkanXlsBase64Decodeyang ada. Ini adalah prasyarat bagi jalur tulis Agile-encryption, yang memancarkan saltValue / encryptedVerifierHashInput / encryptedKeyValue / encryptedHmacValue sebagai nilai atribut Base64 - Event
OnProgressworkbook kini juga memunculkan selama full recalculation (Recalculate), dengan fasexlsxProgressCalculatingbaru. Sebelumnya event hanya memunculkan selama baca dan tulis, sehingga full-recalc panjang tak memberi UI heartbeat. Event memunculkan kira-kira setiap 4% sel untuk menghindari flooding - Properti dokumen extended (
docProps/app.xml) kini me-round-trip tiga field lagi yang Excel tulis untuk dokkas terproteksi-password / berbasis-template:Manager,Template, danDocSecurity(bit field: 1=terproteksi-password, 2=read-only disarankan, 4=read-only ditegakkan, 8=terkunci untuk anotasi)
Versi 2.142.0
Ditambahkan
- Model bertype PivotTable kini membawa permukaan metadata, source, calculated-field, "show values as", dan shared-items-bounds yang dironde analisis sebelumnya tandai sebagai celah.
TXLSPivotCachememperolehRefreshOnLoad/RefreshedBy/RefreshedDate/MissingItemsLimit/CreatedVersion/RefreshedVersion/MinRefreshableVersion/EnableRefresh/BackgroundQuery/SaveDataplus bentuk source worksheet-typed (SourceName/SourceRelId/SourceIsNamedRange);TXLSPivotCacheFieldmemperolehFormula/DatabaseField/MemberPropertyField(calculated field) serta batas shared-items (ContainsBlank/ContainsInteger/ContainsString/ContainsNumber/ContainsDate/MinValue/MaxValue/MinDate/MaxDate/HasBounds);TXLSPivotDataFieldmemperolehShowDataAs/BaseField/BaseItembagi transformasi "show values as" (percent-of / difference / running-total / index). Penulis XLSX (BuildPivotCacheDefinitionXml/BuildPivotTableXml) menghormati semuanya sehingga pivot yang dibangun terprogram (AddPivotTable) memancarkanpivotCacheDefinition+pivotTableDefinitionyang lebih kaya — refreshOnLoad / trio versi / refreshedBy / source named-range / rumus cacheField terhitung / batas sharedItems / subtotal dataField + showDataAs. Pivot table yang dibaca dari berkas tetap me-round-trip raw XML-nya verbatim - Perilaku jangkar gambar kini me-round-trip melalui properti
AnchorTypebaru padaTXLSXImage(xaTwoCell= bergerak dan berubah ukuran dengan sel,xaOneCell= bergerak tapi tak berubah ukuran,xaAbsolute= tak bergerak atau berubah ukuran). Penulis memilih elemen jangkar (xdr:oneCellAnchor/xdr:twoCellAnchor editAs=.../xdr:absoluteAnchor) agar cocok; pembaca meng-parse kembali nama elemen + atributeditAs. Memetakan ke dialog klik-kanan Excel → Size and Properties → Properties - Header/footer kini me-round-trip diferensiasi halaman-genap/pertama.
TXLSXWorksheetmemperolehEvenHeaderText/EvenFooterText/FirstHeaderText/FirstFooterTextplus empat toggle<headerFooter>(DifferentOddEven,DifferentFirst,ScaleWithDoc,AlignWithMargins). Berkas tempat pengguna mengaktifkan "Different odd and even pages" atau "Different first page" tidak lagi kehilangan seksi halaman-genap/pertama pada round-trip - Page setup kini me-round-trip atribut
<pageSetup>extended yang Excel tulis untuk setup cetak non-default:Copies,FirstPageNumber+UseFirstPageNumber,HorizontalDpi,VerticalDpi,PrintErrors(displayed/blank/dash/NA),UsePrinterDefaults <sheetFormatPr>kini me-round-tripcustomHeight,zeroHeight,outlineLevelRowdanoutlineLevelCol, sehingga berkas tempat pengguna menetapkan tinggi baris default ter-pin-pengguna, baris default tersembunyi, atau level outline default tidak lagi kehilangan perilaku itu- Conditional formatting data bar me-round-trip atribut
gradientstandar (isian gradient vs solid), danTXLSDataBarSpecmemperoleh field ekstensix14Excel 2010+ (NegativeBarColor,NegativeBarColorSameAsPositive,GradientFill,AxisColordengan theme/tint,Direction,Border) pada model sehingga konsumen API dapat menyetelnya - Balon komentar me-round-trip VML drawing-nya verbatim. Pembaca menangkap
xl/drawings/vmlDrawingN.vmlapa adanya dan penulis memutar-ulang saat simpan (alih-alih template balon-kuning bawaan), sehingga posisi / ukuran / warna isian / visibilitas yang diatur-pengguna tiap balon bertahan - Body komentar me-round-trip format per-run.
TXLSXCommentmemperoleh payloadRichText: TXLSXRichTextmalas (memakai ulang model run shared-string); penulis memancarkan satu<r><rPr>...</rPr><t>...</t></r>per run saat RichText membawa format, dan pembaca meng-parse<b/>,<i/>,<sz val=N/>,<color rgb=.../>kembali sehingga bold / italic / size / colour bertahan - Evaluator rumus kini mengimplementasikan
SUBTOTAL(sebelas agregator: AVERAGE / COUNT / COUNTA / MAX / MIN / PRODUCT / STDEV / STDEVP / SUM / VAR / VARP, plus varian ignore-hidden 101–111) danAGGREGATE(sembilan belas agregator dengan flag kode-opsi 0–7 yang memilih skip error/hidden, termasuk keluarga LARGE / SMALL / MEDIAN / PERCENTILE / QUARTILE beserta argumenk-nya). Keduanya sebelumnya jatuh ke jalur fungsi-tak didukung;SUBTOTALterdaftar tapi tak punya implementasi,AGGREGATEtak terdaftar sama sekali - Fungsi lembar kerja
CELLdanINFOkini dievaluasi:CELLmendukungaddress,col,row,type,contents,filename,format, daninfo_typeGUI-state (color,parentheses,prefix,protect,width) mengembalikan default netral;INFOmendukungosversion,system,recalc,memavail,numfile,release,origin. Keduanya terdaftar tapi jatuh ke#NAME? - Conditional formatting kini me-round-trip atribut
cfRulestopIfTrue,stdDev,equalAveragedantimePeriod, plus seluruh keluargatimePeriodberanggota-sepuluh (yesterday / today / tomorrow / last7Days / lastWeek / thisWeek / nextWeek / lastMonth / thisMonth / nextMonth). Ini diam-diam dijatuhkan saat baca; Excel menulisnya secara rutin pada aturan above-average dan date-band, dan menjatuhkannya mengubah bagaimana aturan dievaluasi-ulang saat dibuka kembali - Ekspor CSV memperoleh properti
TXLSCsvEncodingpadaTXLSCSVSaverdengan tiga mode:ceSystemAnsi(default legasi),ceUtf16(mode Unicode historis), danceUtf8yang menulis berkas UTF-8 dengan byte-order mark EF BB BF — default modern yang ramah-Excel yang terbuka kembali tanpa wisaya impor-teks pada locale apa pun - Import CSV memperoleh properti
LocaleTolerantNumberspadaTXLSCSVLoader. Saat diaktifkan, field numerik yang gagal di-parse dengan.sebagai pemisah desimal dicoba ulang dengan,(dan sebaliknya), sehingga3,14Eropa terimport sebagai angka 3.14 pada mesin US. Mode ketat (default) tak berubah sehingga teks leading-zero, kode pos, serta token lain pembawa-koma tetap menjadi teks
Diperbaiki
- Inferensi angka strict-mode mesin XLSX tidak lagi memaksa field teks pembawa-koma (mis.
3,14) menjadi angka viaTryStrToFloatDelphi, yang mentoleransi koma sebagai pemisah ribuan bahkan saatThousandSeparatordiset ke#0. Field seperti itu kini tetap teks kecuali opsiLocaleTolerantNumbersbaru diaktifkan
Versi 2.140.0
Diubah
- Mesin XLSX kini memadatkan enam pool gaya per-atributnya (Fonts / Fills / Borders / NumberFormats / Alignments / Protections) sebelum setiap simpan: pass
CompactStylePoolsbaru memindai indeks gaya setiap sel dan membuang entri pool yang tak lagi direferensikan sel mana pun — entri yang terakumulasi saat sel dibersihkan, dihapus, atau diganti-gayanya setelah entri pool pertama kali ditambahkan. Pool terpadat menghasilkan tabel<cellXfs>lebih kecil pada berkas keluaran (biasanya 30–70% lebih kecil untuk dokumen yang telah melalui beberapa siklus edit), mencocokkan pemadatan yang sudah dilakukan mesin XLS viaCreateAllReferredList
Versi 2.139.0
Ditambahkan
- Shape drawing-layer, connector, group shape, dan graphic frame non-chart kini me-round-trip verbatim: saat pembaca XLSX menemui jangkar
<xdr:sp>,<xdr:cxnSp>,<xdr:grpSp>, atau<xdr:graphicFrame>non-chart yang tak dicakup model bertype (gambar / bagan / text box), ia menangkap XML jangkar lengkap dan memutar-ulang tak berubah saat simpan — sehingga drawing yang dibuat di Excel (panah, callout, shape tergrup, smart art frame) bertahan melalui siklus baca→tulis tanpa kehilangan. Setiap lembar kerja menyediakanRawDrawingAnchorCount/RawDrawingAnchor(i)untuk inspeksi
Versi 2.138.0
Ditambahkan
- Nilai sel cache external link kini me-round-trip pada mesin XLSX: model
TXLSXExternalCell/TXLSXExternalRow/TXLSXExternalSheetDatabaru menggantung dari setiapTXLSXExternalLinkviaAddSheetData/AddRow/AddCell, penulis memancarkan blok<sheetDataSet>yang cocok di dalamexternalLinkN.xml, dan membuka kembali memulihkan setiap nilai cache.FindCachedCell(sheetIdx, row, col)mencari nilai terakhir-diketahui dari sel yang direferensikan secara eksternal — data yang ditampilkan Excel sendiri saat workbook remote offline
Versi 2.137.0
Ditambahkan
- Flag
quotePrefixcellXf OOXML — mekanisme Excel untuk menandai teks tersimpan sebagai literal sehingga bertahan pemaksaan numerik (kode hasil import-CSV seperti00123, nomor rekening panjang, apa pun yang diprefiks pengguna dengan apostrof) — kini me-round-trip pada mesin XLSX:TXLSXAlignmentmemperoleh propertiQuotePrefix, pool alignment dedup menghitungnya, penulis memancarkanquotePrefix="1"pada<xf>yang cocok, dan membuka kembali memulihkannya baik cellXf membawa anak<alignment/>ataupun<xf quotePrefix="1"/>self-closing polos
Versi 2.136.0
Ditambahkan
- Sumbu bagan kini sepenuhnya dapat diprogram: model
TXLSXChartAxisbaru padaCategoryAxisdanValueAxissetiap bagan mengeksposLogBase(skala logaritmik, mis. 10 untuk log basis-10),Orientation(normal / terbalik),MajorGridlines/MinorGridlines,MinValue/MaxValue(NaN = otomatis),MajorUnit/MinorUnit,CrossesAt,TickLblPos, danDispUnits(unit tampilan: ratusan / ribuan / jutaan / miliar / triliun). Semua default ke perilaku otomatis Excel, sehingga bagan yang ada memancarkan XML yang sama seperti sebelumnya; penulis menambahkan<c:logBase>,<c:orientation>,<c:majorGridlines>,<c:majorUnit>,<c:crossesAt>,<c:tickLblPos>, dan<c:dispUnits>hanya ketika pemanggil menetapkan nilai non-default, dan membuka kembali bagan demikian memulihkan setiap pengaturan
Versi 2.135.0
Ditambahkan
- Batang kesalahan bagan kini dapat diprogram dan pulang-pergi pada mesin XLSX: setiap
TXLSXChartSeriesmemperolehAddErrorBar(dir)yang mengembalikanTXLSXChartErrBardenganValueType(tetap / persentase / stdDev / stdErr / kustom),Value,PlusValue/MinusValue(kustom), danNoEndCap; satu slot batang kesalahan per arah (X / Y) disimpan, penulis memancarkan blok<c:errBars>yang cocok, dan membuka kembali memulihkan arah, tipe, dan besaran sehingga bagan ilmiah / teknik mempertahankan indikator ketidakpastiannya
Versi 2.134.0
Ditambahkan
- Label data bagan kini dapat diprogram dan pulang-pergi pada mesin XLSX: setiap
TXLSXChartSeriesmemperoleh propertiShowValue,ShowCategoryName,ShowSeriesName,ShowLegendKey,ShowPercent,ShowBubbleSize, danSeparatoryang memancarkan blok<c:dLbls>yang cocok beserta turunannya<c:show*/>; membuka kembali bagan demikian memulihkan sakelar sehingga pengaturan 'tampilkan nilai' / 'tampilkan persen' bertahan dari siklus simpan-sunting-simpan
Versi 2.133.0
Ditambahkan
- Format gambar vektor EMF dan WMF kini menjadi tipe gambar kelas satu pada mesin XLSX:
TXLSXImageFormatmemperolehxlsxImageEmf/xlsxImageWmf, penulis memancarkan tipe kontenimage/x-emf/image/x-wmfyang cocok beserta ekstensi.emf/.wmf, dan pendeteksi format mengenali header EMF (01 00 00 73), WMF placeable (D7 CD C6 9A), dan WMF standar — sehingga gambar yang ditempel dari Word atau PowerPoint yang disematkan Excel sebagai data vektor kini pulang-pergi alih-alih dijatuhkan
Diperbaiki
- Substream bagan BIFF8 yang rekaman GELFRAME-nya (
$1066) menjangkau batas kelanjutan 8224 byte tidak lagi kehilangan geometri isi/garis: pembaca kini menerima kelanjutan-diri GELFRAME (Excel menulis$1066lain alih-alih$003CCONTINUE standar) dan juga membiarkan rekaman CONTINUE standar dijahit di dalam konteks bagan, sesuai dengan pengiriman multi-chunk penulis yang ada - Gambar latar belakang header/footer BIFF8 (
$0866) yang payload-nya menjangkau rekaman kelanjutan tidak lagi rusak: setiap segmen kelanjutan mengulang header MSO 14 byte yang kini dibersihkan pembaca sebelum penggabungan, sehingga data gambar yang disematkan tidak lagi digeser 14 byte per segmen
Versi 2.132.19
Diperbaiki
- Pembersihan penyimpanan XLS warisan dan XLSX terenkripsi kini merilis stream file senyawa secara deterministik, mencegah file sementara tetap terkunci setelah operasi simpan, muat, VBA, atau paket terenkripsi
- Tampilan terformat nilai varians integer yang diperluas kini menerapkan format angka yang diminta secara konsisten, sesuai dengan perilaku yang ada untuk nilai integer standar
- String bersama, validasi data, lembar bagan, arsip ZIP, gambar PNG, dan rumus teks berulang kini membersihkan buffer sementara secara lebih defensif selama jalur kesalahan dan operasi teks besar
Versi 2.132.18
Diperbaiki
- Penetapan nilai pembangun string internal sekarang membersihkan teks sebelumnya ketika ditetapkan string kosong, mencegah XML dan buffer teks yang digunakan kembali mempertahankan konten basi
Versi 2.132.17
Diperbaiki
- Pembuatan lembar bagan XLS sekarang menerima nama lembar sumber terkuotasi yang berisi tanda seru, menolak referensi baris berukuran berlebih sebelum dapat dibungkus menjadi baris BIFF yang valid, dan membatasi nama legenda garis tren ke batas teks pendek BIFF sehingga catatan bagan yang dihasilkan tetap terbentuk dengan baik
Versi 2.132.16
Diperbaiki
- Daftar kunci string dan kunci objek internal sekarang menghapus kunci pencarian basi ketika slot yang ada ditimpa, mencegah kunci lama menyelesaikan ke entri pengganti
- Penggantian daftar objek internal dan cache kunci unik yang ditransformasikan sekarang merilis entri yang dimiliki saat ditimpa, dibersihkan, dan dihancurkan, mencegah kebocoran selama operasi buku kerja dan gaya yang berulang
Versi 2.132.15
Diperbaiki
- Pembacaan streaming XLSX langsung sekarang mendekode sel boolean yang menyimpan nilai literal OOXML seperti true dan false
- Pembaruan indeks daftar string internal sekarang menghapus kunci basi ketika slot yang ada ditimpa, mencegah nama lama menyelesaikan ke nilai baru
Versi 2.132.14
Diperbaiki
- Pesan petunjuk dan kesalahan validasi data BIFF8 yang karakter pertamanya adalah NUL sekarang mempertahankan batas rekaman alih-alih menulis panjang DV yang tidak cocok
Versi 2.132.13
Diperbaiki
- Penguraian teks XML kini menolak awal entitas bersarang seperti && alih-alih diam-diam menjatuhkan entitas yang belum selesai
- Rumus yang didekompilasi sekarang menulis konstanta numerik dengan pemisah desimal titik invarian sehingga teks rumus tetap portabel di berbagai pengaturan regional
Versi 2.132.12
Diperbaiki
- Transparansi PNG palet sekarang mengabaikan warna transparan yang tidak ada dalam palet gambar alih-alih menandai indeks palet arbitrer sebagai transparan
- Rumus SUMPRODUCT sekarang berhenti memindai baris yang tersisa setelah baris pertama di luar rentang yang digunakan dalam argumen rentang panjang, menghindari pembacaan sel yang tidak perlu sambil mempertahankan hasil yang dihitung
Versi 2.132.11
Diperbaiki
- Rumus TEXT sekarang mengembalikan #VALUE! ketika format angka yang tidak valid atau terlalu besar tidak dapat diterapkan alih-alih ditelan sebagai hasil sukses kosong
- Pemotongan tabel string bersama sekarang membebaskan blok ekor yang benar dan menjaga tabel tetap dapat digunakan kembali setelah siklus penghapusan besar
Versi 2.132.10
Diperbaiki
- Pencarian tepat MATCH sekarang menghormati wildcard Excel, dan metadata offset baris XLS klasik sekarang mengabaikan baris di luar blok alih-alih merusak struktur buku kerja yang disimpan
- Metadata teks terkompresi PNG sekarang merilis buffer sementara dengan aman jika pemrosesan chunk memicu kesalahan
Versi 2.132.9
Diperbaiki
- Metadata teks terkompresi PNG, penyisipan daftar chunk, dan penanganan urutan byte CRC sekarang tetap stabil di seluruh platform Windows yang didukung
Versi 2.132.8
Diperbaiki
- Rumus LEFT dan RIGHT sekarang melaporkan #VALUE! ketika num_chars tidak dapat dikonversi menjadi integer yang valid
Versi 2.132.7
Diperbaiki
- Rumus SEARCH sekarang mendukung wildcard ?, *, dan ~ gaya Excel
- Validasi nama lembar kerja sekarang menolak karakter nama lembar Excel yang tidak valid saat mengganti nama lembar
- Penghapusan pemisah halaman manual sekarang berfungsi setelah memasukkan pemisah sebelum pemisah yang ada
Versi 2.132.6
Diperbaiki
- Rumus DATE sekarang cocok dengan perilaku perputaran bulan dan hari yang kompatibel dengan Excel, termasuk panggilan seperti DATE(2008,14,2)
- Pembacaan Tersembunyi rentang kolom sekarang melaporkan visibilitas masing-masing kolom alih-alih mencampuradukkan status visibilitas baris
- Metadata baris BIFF pada batas baris Excel 97-2003 sekarang dimuat dengan benar sehingga pengaturan untuk baris 65536 dipertahankan
Versi 2.132.5
Diperbaiki
- Pemuatan buku kerja BIFF sekarang mentolerir warna tab lembar kerja yang salah format, label pivot yang terpotong, dan fragmen tanggal pivot-cache yang tidak valid tanpa memicu pengecualian
- Pemuatan paket dan stream buku kerja sekarang membersihkan jalur penyiapan arsip dan penyimpanan yang gagal secara lebih konsisten, menghindari kebocoran sumber daya pada input yang salah format atau pembukaan penyimpanan yang didukung stream yang gagal
Versi 2.132.4
Diperbaiki
- Penanganan arsip ZIP sekarang memfinalisasi paket saat ini sebelum menggunakan kembali objek arsip yang sama untuk paket lain, dan pembukaan arsip berbasis file sekarang memungkinkan pembaca bersama secara bersamaan
Versi 2.132.3
Diperbaiki
- Penulisan paket buku kerja sekarang mempertahankan nama entri ZIP non-ASCII dengan metadata UTF-8, mencegah mojibake ketika nama bagian paket berisi teks Unicode
- Keluaran XML sekarang menulis teks mentah dan nilai atribut sebagai byte UTF-8 ketika pelepasan dinonaktifkan, cocok dengan pengodean dokumen yang dideklarasikan
- Evaluasi rumus sekarang membersihkan status sedang berlangsung setelah pengecualian callback dan menangani pembatalan jumlah besar dengan benar pada build Delphi Unicode
- Ekstraksi matriks rumus array sekarang menghormati batas bawah array Variant bukan nol alih-alih memicu kesalahan untuk array berbasis satu yang valid
Versi 2.132.2
Diubah
- Pengurutan rentang sekarang menggunakan lintasan pengurutan O(n log n) yang stabil untuk rentang terurut yang besar, sambil mempertahankan perilaku pulang-pergi konten baris yang ada
- Penguraian dan pemformatan numerik ODS dan XLSX sekarang menggunakan kembali status pemformatan invarian alih-alih membuatnya berulang kali di jalur cepat
Diperbaiki
- Penguraian XML sekarang menerima blok CDATA yang valid dan instruksi pemrosesan UTF-8 tanpa merusak teks atau gagal pada markup yang valid
- Penguraian rumus sekarang menerima notasi ilmiah bertanda dan menolak byte rumus yang salah format atau terpotong dengan bersih
- Jalur buka dan simpan buku kerja klasik sekarang melepaskan stream dan penyimpanan secara andal setelah terjadi kesalahan, mencegah file sementara tetap terkunci
- Penanganan buffer biner sekarang memvalidasi batas salin dan baca, menumbuhkan buffer tujuan sebelum menyalin, dan menolak referensi balik kompresi VBA yang salah format dengan bersih
Versi 2.132.1
Diperbaiki
- Memperbaiki pesan kesalahan yang muncul ketika buku kerja terenkripsi menggunakan skema enkripsi yang tidak didukung: sebelumnya diklaim bahwa Enkripsi Agile ECMA-376 tidak dapat dibaca, meskipun dekripsi Agile (AES-128/192/256) telah didukung sejak 2.119.0. Pesan tersebut sekarang mencantumkan skema yang sebenarnya didukung
- Open sekarang mengarahkan pemanggil ke TXLSXBuku Kerja.OpenEncrypted ketika menolak paket OOXML terenkripsi, alih-alih menyatakan bahwa buku kerja terenkripsi tidak didukung
Versi 2.132.0
Diubah
- Pemuatan XLSX secara substansial lebih cepat: pembaca XML sekarang menginternir nama elemen berulang dan mengonversi nilai teks dan atribut langsung dari buffer pemindaiannya, memangkas alokasi memori per sel lebih dari setengahnya. Pembukaan multi-thread (2.128.0) paling diuntungkan — alokasi yang dihapus adalah alokasi yang menserialisasikan thread pekerja — dengan buku kerja multi-lembar sekarang terbuka hampir dua kali lebih cepat dari jalur thread tunggal pada mesin multi-core; pembukaan thread tunggal juga naik beberapa persen
Versi 2.131.0
Ditambahkan
- Blok ekstensi lembar kerja yang tidak dimodelkan HotXLS — entri
<ext>dalam<extLst>lembar kerja selain sparkline, seperti yang ditulis Excel untuk fitur seperti pemformatan bersyarat x14 atau slicer — kini dipertahankan secara harfiah ketika buku kerja dibuka dan ditulis kembali saat disimpan, sehingga membuka dan menyimpan ulang file tidak lagi mengupas ekstensi tersebut. Blok yang ditangkap terlihat hanya-baca melaluiWorksheet.RawWorksheetExtsdan ikut dengan lembar ketika disalin ke buku kerja lain
Versi 2.130.0
Ditambahkan
- Buku kerja yang disimpan yang berisi rumus sekarang membawa bagian rantai kalkulasi
xl/calcChain.xml, membiarkan Excel membenihkan mesin dependensinya dari urutan yang direkam alih-alih membangunnya kembali saat dimuat. Setelah panggilanRecalculate, rantai mengikuti urutan topologis grafik dependensi; jika tidak, sel rumus dicantumkan dalam urutan dokumen (petunjuk valid yang disempurnakan Excel dengan cepat). Bagian tersebut, tipe kontennya, dan hubungan buku kerjanya dipancarkan bersama dan bertahan dalam putaran balik buka/simpan
Versi 2.129.0
Ditambahkan
- Properti
Buku Kerja.ParallelParseThreadsbaru mengatur jumlah pekerja untuk jalur Buka multi-thread yang diperkenalkan di 2.128.0 (0 = otomatis, satu pekerja per inti CPU). Penguraian lembar kerja mengalokasikan memori secara besar-besaran dan alokasi memori diserialkan di seluruh thread, sehingga pada beberapa beban kerja, batas eksplisit kecil berkinerja sama baiknya dengan — atau lebih baik dari — jumlah inti penuh; properti ini memungkinkan integrator memilih apa yang paling tepat untuk file mereka
Versi 2.128.0
Ditambahkan
- Pemuatan XLSX multi-thread: membuka buku kerja sekarang mengurai XML setiap lembar kerja — biaya dominan pada file besar — pada thread pekerja, sehingga buku kerja multi-lembar terbuka lebih cepat pada mesin multi-core. Bagian lembar diekstraksi dari paket di depan dan setiap pekerja hanya menyentuh lembarnya sendiri, sehingga buku kerja yang dimuat identik dengan hasil serial
- Properti
Buku Kerja.ParallelParsebaru (defaultTrue) beralih kembali ke penguraian berulir tunggal saat disetel keFalsesebelumOpen— pilihan keluar satu baris untuk lingkungan terbatas
Diubah
- Callback pembacaan
OnProgressmasih dipicu sekali per lembar kerja pada thread pemanggil, sekarang saat setiap lembar dikirim untuk penguraian, bukan secara ketat di antara lembar
Versi 2.127.0
Ditambahkan
- Perhitungan ulang bertahap pada mesin XLSX: metode baru
Buku Kerja.Recalculatemembangun grafik dependensi rumus, mengevaluasi setiap sel rumus satu kali dalam urutan dependensi, dan menyimpan setiap hasil dalam nilai cache sel. Panggilan berikutnya hanya mengevaluasi kembali sel yang dipengaruhi oleh perubahan nilai sejak lintasan terakhir — pada model berantai (lembar keuangan, laporan berjenjang) mengedit satu input hanya akan menghitung ulang rumus hilirnya saja, bukan seluruh buku kerja - Fungsi volatil (
NOW,TODAY,RAND,OFFSET,INDIRECT) menghitung ulang pada setiap lintasan, begitu pula rumus yang referensinya tidak dapat diselesaikan secara statis (nama multi-area, buku kerja eksternal) — mesin menghitung ulang secara berlebihan daripada mengambil risiko hasil yang basi - Siklus referensi dideteksi alih-alih perulangan:
Recalculatemengembalikan kode kesalahan ketika rumus membentuk rantai melingkar, melompati anggota siklus, dan tetap mengevaluasi setiap rumus di luar siklus. Referensi lintas lembar, rentang bernama, dan rumus array CSE (hasil yang ditumpahkan di seluruh rentang terjangkar) berpartisipasi penuh dalam grafik dependensi
Diubah
- Jalur
Hitungberdasarkan permintaan yang ada tidak berubah;Recalculateadalah API keikutsertaan terpisah dan buku kerja yang tidak pernah memanggilnya berperilaku persis seperti sebelumnya
Versi 2.126.0
Ditambahkan
- Sparkline pada mesin XLSX: lembar kerja sekarang membawa grup sparkline — bagan mini dalam sel yang dirender Excel dari rentang data — dengan tiga jenis Excel (garis, kolom, tumpukan menang/kalah). Buat satu dengan
Worksheet.AddSparklineGroupatau buat grup secara manual melalui koleksiWorksheet.SparklineGroupsbaru, tambahkan jumlah sparkline berapa pun per grup dengan masing-masing rentang sumber dan sel tampilan - Grup sparkline mengekspos set opsi lengkap yang ditawarkan Excel: bobot garis, penanda titik data, sakelar penekanan titik tinggi/rendah/negatif/pertama/terakhir, delapan slot warna ARGB (seri, negatif, sumbu, penanda, pertama, terakhir, tinggi, rendah), penskalaan sumbu vertikal per grup atau per sparkline, dan penanganan celah/nol/rentang untuk sel sumber yang kosong
- Sparkline bertahan dari putaran balik simpan→buka penuh: penyimpanan memancarkan blok ekstensi lembar kerja
extLst([MS-XLSX] §2.3.6) sehingga Excel 2010 dan yang lebih baru merender sparkline, dan membuka buku kerja tersebut — baik ditulis oleh HotXLS atau Excel — membangun kembali setiap grup, opsi, dan rentang sehingga tetap ada melalui siklus pengeditan. Menyalin lembar ke buku kerja lain juga mengkloning grup sparkline-nya
Versi 2.125.0
Ditambahkan
- Tujuh fungsi teks penghitung byte DBCS dari analisis kesenjangan XLSSuit sekarang dievaluasi pada kedua mesin:
LEFTB,RIGHTB,MIDB,LENB,FINDB,SEARCHB, danREPLACEB. Masing-masing memperlakukan inputnya sebagai string byte di bawah halaman kode ANSI sistem sehingga karakter CJK (Tionghoa/Jepang/Korea) menempati 2 byte sedangkan ASCII menempati 1; operasi yang akan membagi pasangan byte timbal/jejak DBCS akan kembali ke batas karakter terdekat, cocok dengan perilaku Excel
Versi 2.124.0
Ditambahkan
- Lima fungsi pengujian hipotesis dan distribusi dari analisis kesenjangan XLSSuit sekarang dievaluasi pada kedua mesin:
Z.TEST(probabilitas ekor kanan satu arah bahwa rata-rata sampel setidaknyaxdi bawah hipotesis nol),T.TEST(nilai p uji-t dua sampel berpasangan; tipe varians sama/tidak sama tidak berpasangan ditangguhkan),CHISQ.TEST(nilai p goodness-of-fit via CDF chi-square ekor atas),HYPGEOM.DIST(PMF/CDF hipergeometris dengan bendera kumulatif), danNEGBINOM.DIST(PMF/CDF binomial negatif). Matematika nilai p menggunakan kembali pembantu CDF normal/Student-t/chi-square mesin yang ada melalui rutinitas bersarang yang mandiri, sehingga tidak ada metode Calc yang berubah
Versi 2.123.0
Ditambahkan
- Empat belas fungsi rumus yang diidentifikasi oleh perbandingan dengan XLSSuit sebagai kesenjangan sekarang dievaluasi pada kedua mesin:
AVERAGEIF(rata-rata kriteria tunggal, saudara kandung SUMIF/COUNTIF yang hilang dari mesin),WORKDAY.INTLdanNETWORKDAYS.INTL(mask akhir pekan kustom via kode nomor 1-17 atau string 7 karakter Senin-Minggu),XIRRdanXNPV(tingkat pengembalian internal dan nilai saat ini bersih untuk arus kas tanggal tidak teratur, diselesaikan dengan braket biseks),CEILING.PRECISE/FLOOR.PRECISE/ISO.CEILING(pembulatan agnostik tanda),PERCENTRANK.INC/PERCENTRANK.EXC(peringkat persentil dengan interpolasi inklusif/eksklusif yang cocok),MODE.MULT(menumpahkan setiap nilai yang terikat untuk frekuensi tertinggi),ERF.PRECISE(fungsi kesalahan Gauss via deret selang-selingnya),ACCRINT(bunga terakumulasi), danISPMT(bunga periode untuk amortisasi pokok konstan)
Versi 2.122.0
Ditambahkan
- Komentar berulir (Excel 365) sekarang pulang-pergi pada mesin XLSX:
AddThreadedCommentdanAddThreadedReplypada lembar kerja membangun pohon balasan induk→anak yang dijangkarkan pada sel, mendaftarkan otomatis setiap penulis pada daftarPersonstingkat buku kerja baru, dan memancarkan bagianxl/threadedKomentar/threadedCommentN.xmlkhusus per lembar ditambahxl/person/person.xmllingkup buku kerja; membuka kembali paket tersebut membangun kembali pohon percakapan dan daftar peserta dari bagian-bagian tersebut, sehingga rantai balasan, pengidentifikasi, dan nama tampilan bertahan dalam siklus baca→tulis penuh
Versi 2.121.0
Ditambahkan
- Evaluator rumus sekarang menghitung fungsi dynamic-array Excel 365
XMATCH,SORT,UNIQUE, danSEQUENCE, bergabung denganXLOOKUPdanFILTERyang sudah didukung; hasil tumpah sebagai array 2-D sehinggaSEQUENCE(3;2;1;1)mengembalikan kisi 3×2,SORTmenyusun ulang baris berdasarkan kolom kunci apa pun secara menaik atau menurun,UNIQUEmenciutkan baris duplikat dengan mempertahankan kemunculan pertama, danXMATCHmelaporkan posisi berbasis 1 dari nilai pencarian dengan mode pencocokan tepat/wildcard/terkecil berikutnya/terbesar berikutnya yang sama denganXLOOKUP
Versi 2.120.0
Ditambahkan
- Metode
PasteFromClipboardbaru pada lembar kerja kedua mesin membaca teks yang dipisahkan tab dari clipboard Windows — payload yang ditempatkan Excel di sana saat rentang disalin, atau pilihan biasa dari aplikasi lain apa pun — dan menulisnya ke dalam sel mulai dari baris dan kolom yang diberikan, dengan promosi tipe angka/tanggal/boolean yang sama dengan yang sudah digunakan pemuat CSV; teks yang diawali dengan=menjadi rumus langsung, cocok dengan cara Excel sendiri menempelkan
Versi 2.119.0
Ditambahkan
- Pembacaan Enkripsi Agile ECMA-376 — perlindungan kata sandi yang diterapkan Excel 2010 dan yang lebih baru secara default:
OpenEncryptedsekarang mengurai deskriptor enkripsi XML, menurunkan kunci dengan hashing hitungan putaran SHA-512, memverifikasi kata sandi, dan mendekripsi paket tersegmentasi AES-CBC (AES-128/192/256), sehingga buku kerja yang dilindungi kata sandi langsung di Excel dapat dibuka tanpa perlu menginstal Excel OpenEncryptedmenangani ketiga kasus melalui satu titik entri:.xlsxpolos tidak terenkripsi, Standard Encryption (putaran balikSaveAsEncryptedkami), dan Agile Encryption; kata sandi yang salah memicu kesalahan jelas yang sama di setiap skema
Diperbaiki
- Menyimpan buku kerja
.xlsxyang XML lembar kerjanya melebihi kira-kira 116 KB — sekitar 3.000 baris data string tipikal — runtuh dengan luapan tumpukan; checksum CRC-32 penulis ZIP kini memproses data dalam irisan 64 KB, yang menjaga backend kompresi dari jalur kode input-besar yang mengalokasikan buffer goresan ukuran berlebih pada tumpukan. Hasil checksum tidak berubah
Diubah
- Deduplikasi string bersama sekarang berjalan melalui tabel hash alih-alih memindai daftar string, dan bagian
sharedStrings.xmldirakit melalui pembangun string yang tumbuh sebelumnya alih-alih penggabungan berulang — bersama dengan indeks sel waktu konstan ini menghemat 120.000 sel string dari puluhan detik menjadi sekitar sepertiga detik
Versi 2.117.0
Diubah
- Akses sel XLSX kini waktu konstan: koleksi sel lembar kerja membawa indeks hash atas (baris, kolom), menggantikan pemindaian linear sebelumnya — sehingga mengisi, membaca ulang, atau memuat lembar besar berskala linear dengan jumlah sel alih-alih kuadratis; mengisi 100.000 sel kini membutuhkan waktu jauh di bawah satu detik di mana sebelumnya butuh menit
- Percepatan berlaku di seluruh mesin:
Cells[r, c],HasCell, pemuatan buku kerja, penyimpanan, salinan lintas-buku kerja, auto-fit, dan setiap pembantu yang menyentuh sel berdasarkan posisi semuanya diuntungkan; penyisipan atau penghapusan baris dan kolom membangun kembali indeks dalam satu lintasan
Versi 2.116.0
Ditambahkan
- Ekspor PDF pada mesin XLS klasik: metode
SaveAsPDFbaru pada lembar kerja dan buku kerja merender rentang terpakai (atau rentang yang disediakan pemanggil melaluiTXLSPDFExport) sebagai kisi berhalaman — teks tampilan sel melalui format angka, garis kisi, lebar kolom yang diturunkan dari lebar Excel dan diskalakan agar pas halaman, dan penomoran halaman multi-otomatis - Pembaruan: Keluaran adalah file PDF 1.4 mandiri tanpa dependensi eksternal, menggunakan font Helvetica bawaan dengan pengodean teks WinAnsi; orientasi A4 potret atau lanskap, margin halaman, dan ukuran font dapat dikonfigurasi pada eksportir
- Ini adalah ekspor presentasi data bersama HTML dan RTF: ia mereproduksi konten dan tata letak tabular untuk laporan dan serah-terima dokumen alih-alih pemformatan penuh per-sel
Versi 2.115.0
Ditambahkan
- Pembuatan bagan satu panggilan dari rentang data pada mesin XLSX:
AddChartFromRangebaru membangun bagan lengkap dan menurunkan serinya secara otomatis dari blok data persegi panjang — ekuivalen "sisipkan bagan dari seleksi" Excel — dengan tata letak seri-dalam-kolom atau seri ditransposisi dalam baris - Pintasan bernama
AddColumnChart,AddBarChart,AddLineChart,AddPieChart, danAddAreaChartmemilih tipe bagan berdasarkan nama melalui aliran satu-panggilan yang sama, membaca nama seri dari baris header dan label kategori dari kolom pertama - Pembaruan: Referensi seri memenuhi syarat dengan nama terkuotasi lembar sumber, sehingga bagan yang dihasilkan tetap berfungsi ketika ditempatkan pada lembar apa pun dan bertahan dari simpan dan muat ulang
Versi 2.114.0
Ditambahkan
- Impor RTF pada mesin XLS klasik, kebalikan dari ekspor
SaveAsRTFyang ada: metodeOpenRTFbaru pada lembar kerja dan buku kerja membaca tabel dokumen RTF ke dalam sel lembar kerja —\cellmemajukan kolom,\rowmemajukan baris — dimulai dari A1 - Pembaruan: Memulihkan data tabular dari file yang dihasilkan oleh
SaveAsRTF, Word, atau WordPad: teks numerik disimpan sebagai angka sehingga rumus tetap berfungsi, pelarian heksadesimal (\'hh) dan Unicode (\uN) didekode dengan benar, dan grup header (tabel font, tabel warna, stylesheet, info) dilewati - Dokumen tanpa tabel kembali ke mode paragraf, mengimpor setiap
\parsebagai baris berikutnya di kolom A
Versi 2.113.0
Ditambahkan
- Pembacaan buku kerja
.xlsxterenkripsi:OpenEncryptedkini mendekripsi paket ECMA-376 Standard Encryption (AES-128), melengkapi putaran balik denganSaveAsEncryptedyang ada — ia membaca kontainer file senyawa, menurunkan kunci dari kata sandi, memverifikasinya, dan memuat buku kerja yang dipulihkan - Kata sandi yang salah memunculkan kesalahan jelas "kata sandi salah", dan
OpenEncryptedpada.xlsxpolos tidak terenkripsi terus memuatnya secara langsung, sehingga pemanggil dapat merutekan setiap file melalui satu titik entri
Diubah
- Pembaruan: Pesan enkripsi-tidak-terdukung kini menyebut ECMA-376 Agile Encryption secara spesifik sebagai skema tidak terdukung yang tersisa, karena pembacaan dan penulisan Standard Encryption keduanya tersedia
Versi 2.112.0
Ditambahkan
- Properti
TaggedTextbaru pada sel XLSX mengonversi antara teks kaya dan markup ringan:<b>,<i>,<u>,<s>,<sub>,<sup>,<color=#RRGGBB>,<font=Name>, dan<size=N>, dengan pelarian</>/&— sehingga konten sel multi-format dapat dihasilkan dari templat String alih-alih merakit objek run secara manual - Penulisan markup membangun daftar run dan menjaga
Valuesebagai teks polos yang tergabung; markup tanpa tag menyimpan String polos tanpa payload kaya; pembacaan menserialisasi atribut setiap run sebagai set tag lengkap; tag yang tidak dikenal diteruskan sebagai teks harfiah
Diperbaiki
- Pembaruan: Run teks kaya yang seluruhnya terdiri dari whitespace (misalnya satu spasi bergaya antara kata) kini bertahan dari simpan dan muat ulang; sebelumnya spasi dijatuhkan ketika file dibuka kembali
Versi 2.111.0
Ditambahkan
- Event
OnProgressbaru pada buku kerja XLSX melaporkan kemajuan muat dan simpan: ia dipicu sekali per lembar kerja saat diurai selamaOpenatau dipancarkan selamaSaveAs, membawa fase (membaca atau menulis), nomor lembar berbasis-1 saat ini, dan total — sehingga aplikasi dapat menggerakkan bilah kemajuan selama operasi multi-lembar panjang dengan biaya callback yang dapat diabaikan
Versi 2.110.0
Ditambahkan
- Kursor baris
TXLSRowCursorbaru bergaya dataset untuk file.xlsx/.xlsm:Open,SelectSheet, laluFindFirst/FindNextmenjelajahi lembar kerja satu baris pada satu waktu dengan hanya sel baris saat ini di memori — alternatif tarik-dorong untuk callbackTXLSDirectReaderuntuk memproses berurutan lembar multi-juta baris - Setiap baris mengekspos nomor baris lembar kerja berbasis-1-nya, sel terisi dalam urutan dokumen (nilai bertipe, teks rumus, indeks gaya), dan pencarian
ValueByColyang mengembalikanNulluntuk kolom yang tidak terisi pada baris itu; baris tanpa sel terisi dilewati - Pembaruan: Nama dan jumlah lembar tersedia setelah
Open(kelebihan beban file dan stream), dengan string bersama dan deteksi format-tanggal ditangani dengan cara yang sama seperti pembaca streaming
Versi 2.109.0
Ditambahkan
TXLSXCellFormatbaru "kuas format" untuk mesin XLSX: jelaskan font, isi, batas, penyelarasan, format angka, dan perlindungan sekali, lalu stempel sejumlah target denganApply(sel tunggal),ApplyRange,ApplyRows,ApplyCols, atauApplySheet- Pembaruan: Hanya aspek yang benar-benar disentuh yang diterapkan — kuas yang hanya menetapkan
Font.Boldmembiarkan isi, batas, dan format angka target tidak tersentuh — sehingga kuas menyusun dengan pemformatan yang ada seperti kuas format Excel - Setiap penerapan menyelesaikan aspek yang disentuh ke dalam pool gaya buku kerja sekali lalu menulis hanya indeks pool per sel, sehingga pemformatan rentang besar memerlukan satu pencarian pool per aspek alih-alih per sel;
ApplyRangemematerialisasi sel yang hilang sementara formulir baris/kolom/lembar menstempel hanya sel yang ada
Versi 2.108.0
Ditambahkan
- Teks tampilan Boolean yang dapat dilokalkan: variabel
XLSBooleanTrueText/XLSBooleanFalseTextbaru mengontrol bagaimana nilai sel Boolean dirender di mana pun teks tampilan dihasilkan —FormattedText, ekspor HTML, dan pengukuran auto-fit — sehingga aplikasi yang dilokalkan dapat menampilkan misalnya WAHR/FALSCH atau VRAI/FAUX
Diubah
- Pembaruan: Sel Boolean kini ditampilkan sebagai
TRUE/FALSEsecara default, sesuai dengan kisi Excel, alih-alih kapitalisasiTrue/Falseruntime
Versi 2.107.0
Ditambahkan
- Event
OnPasswordbaru pada buku kerja XLS klasik: ketikaOpenmenemui buku kerja terenkripsi dan kata sandi yang diberikan hilang atau salah, event meminta aplikasi untuk kata sandi dan mencoba ulang pembukaan (hingga tiga percobaan) — sehingga alat interaktif dapat meminta pengguna alih-alih memuat kata sandi sebelumnya atau memeriksa kode kesalahan - Event menerima kata sandi saat ini berdasarkan referensi dan bendera
Retry; membiarkanRetrypadaFalsemenyerah dan mengembalikan kesalahan kata sandi asli
Versi 2.106.0
Ditambahkan
- Kelas
TXLSFileMonitorbaru mengawasi file buku kerja pada disk dan memicuOnFileChangedketika proses lain — biasanya Excel — menyimpan di atasnya, sehingga aplikasi dapat memuat ulang dan menyegarkan tampilannya secara otomatis - Pembaruan: Berbasis polling (waktu tulis-terakhir plus ukuran,
IntervalMsdapat dikonfigurasi, default 1 d), sehingga bekerja pada disk lokal dan share jaringan sama baiknya tanpa loop pesan;SynchronizeEventmemilih antara pengiriman thread utama untuk penangan UI (default) dan pengiriman thread pengawas langsung untuk kode konsol atau layanan - Pembaruan: File yang sebentar hilang selama siklus simpan tidak memicu event palsu; perubahan dilaporkan setelah konten baru berada di tempatnya
Versi 2.105.0
Ditambahkan
- Auto-fit terbatas pada mesin XLS klasik, sesuai dengan batas yang sudah ditawarkan mesin XLSX: kelebihan beban
AutoFit(Columns, AMin, AMax),ColumnsAutoFit(AMinWidth, AMaxWidth), danRowsAutoFit(AMinHeight, AMaxHeight)baru menjepit setiap lebar kolom yang dipas (unit lebar Excel) atau tinggi baris (poin) ke rentang yang diberikan — 0 membiarkan satu sisi tidak terbatas, dan kolom atau baris yang sepenuhnya kosong masih menerima minimum yang diminta
Versi 2.104.0
Ditambahkan
- Properti
FormattedTextbaru hanya-baca mengembalikan teks tampilan sel — nilai tersimpan dirender melalui format angkanya, seperti cara Excel menampilkannya di kisi — mencakup pemisah ribuan, desimal, persentase, mask tanggal dan waktu, mask positif/negatif/nol multi-bagian, dan format Boolean - Tersedia di kedua mesin: pada
IXLSRangedi mesin XLS klasik (rentang multi-sel merender sel jangkar mereka) dan padaTXLSXCelldi mesin XLSX (sel teks kaya mengembalikan teks run tergabung mereka)
Versi 2.103.0
Ditambahkan
- Fungsi
DetectExcelContentFormatbaru (kelebihan beban nama file dan stream) mengidentifikasi kontainer buku kerja dari byte awalnya alih-alih ekstensi file — melaporkan file senyawa BIFF/OLE, paket OOXML.xlsx, paket OpenDocument.ods, atau teks terbatas polos — sehingga aplikasi dapat merutekan file yang diganti nama atau tanpa ekstensi ke pemuat yang benar
Diubah
- Pembaruan:
TXLSWorkbook.Openkini mengendus tanda tangan konten dan menolak paket berbasis ZIP (.xlsxatau.odsyang diganti nama menjadi.xls) dengan pesan jelas yang menyebut pemuat yang benar, alih-alih gagal dengan kode kesalahan opak - Pembaruan:
TXLSXWorkbook.Openkini mengenali konten file senyawa OLE (.xlswarisan yang diganti nama menjadi.xlsx, atau paket terenkripsi) dan melaporkan apa file itu sebenarnya, alih-alih memunculkan kesalahan parser ZIP
Versi 2.102.0
Ditambahkan
- Cross-buku kerja lembar kerja copy in the classic XLS (BIFF8) engine now brings the buku kerja-level defined names a rumus uses over to the destination — the same thing Excel does when a sheet moves between workbooks: a name the destination already has is bound as-is (no duplicate is created), a missing name is registered with its original definition and visibility so the rumus recompiles against it, and a name whose definition cannot resolve in the destination (for example, it points at a sheet that does not exist there) leaves the rumus on its computed nilai as before
Versi 2.101.0
Ditambahkan
- Cross-buku kerja lembar kerja copy in the classic XLS (BIFF8) engine now re-points formulas at the source buku kerja as an external link when the destination has no sheet of the referenced name and the source has been saved to a file: the copied sel stays a live rumus (its references switch to the [SourceBook]Sheet form), the source's computed nilai is kept as the cached result so reads keep working until the link is refreshed, and the external buku kerja reference round-trips through save and reload; formulas carrying defined-name references, and copies from unsaved source workbooks, keep the computed nilai as before
Versi 2.100.0
Ditambahkan
- Array formulas now survive lembar kerja copies in the classic XLS (BIFF8) engine: each array rentang is rebuilt as a whole in the copy — within the same buku kerja and across workbooks alike — with the root rumus recompiled against the destination's sheet names; an array the destination cannot recompile keeps its computed values instead
Diperbaiki
- Copying a rentang that contains array-rumus cells between classic XLS worksheets no longer risks a crash on the spill cells (which carry no rumus tree of their own); such cells now transfer their computed nilai
Versi 2.99.0
Ditambahkan
- Chart sheets can now be copied between classic XLS (BIFF8) workbooks: the chart record stream is cloned into the destination, series category / nilai / name references are recompiled against the destination's sheet names (a series whose sheet has no same-name counterpart falls back to an empty reference so the file still opens), chart font references migrate by nilai into the destination font table, and the page setup, tab color, zoom, and visibility of the chart sheet come along; this removes the last documented limitation of the cross-buku kerja lembar kerja copy
Versi 2.98.0
Ditambahkan
- Cross-buku kerja lembar kerja copy in the classic XLS (BIFF8) engine now preserves rich-text formatting inside cells: each formatting run's font is migrated by nilai into the destination buku kerja's font table and the run is rewritten to point at it, so mixed-font strings keep their appearance instead of falling back to plain text; phonetic (Far-East) auxiliary data travels with the String as well
Diperbaiki
- Fonts referenced only by rich-text runs (and not by any sel format) are no longer dropped from the FONT table when saving a classic XLS buku kerja, and the runs now follow the same font reordering as sel formats on save, so rich-text strings keep the correct fonts after a save/reload cycle
Versi 2.97.0
Ditambahkan
- Cross-buku kerja lembar kerja copy in the classic XLS (BIFF8) engine now also clones embedded pictures: the image bytes migrate into the destination buku kerja's picture store (identical images are shared rather than duplicated), and each picture frame keeps its sel anchor, size, visibility, and transparent color; a new CrossWorkbookCopyXls sample project demonstrates the classic-engine copy end to end
Diubah
- Classic XLS cross-buku kerja copy limitations are now documented: chart sheets are not copied (AddCopy returns nil for them), and a rumus whose sheet reference has no same-name sheet in the destination keeps the source's computed nilai instead of becoming an external reference
Versi 2.96.0
Ditambahkan
- Cross-buku kerja lembar kerja copy in the classic XLS (BIFF8) engine now also clones conditional formats (sel-is and expression rules, data bars, color scales, icon sets, and their differential styles), data validations (list, numeric, date, text-length, and custom rules with prompt and error boxes), the AutoFilter definition with its per-kolom criteria (the dropdown buttons are rebuilt in the copy), and tables (ids and names are re-issued so they stay unique in the destination buku kerja); rule formulas are recompiled against the destination's sheet names, matching the behavior of sel formulas
Versi 2.95.0
Ditambahkan
- Classic XLS (BIFF8) worksheets can now be copied from one buku kerja into another: TXLSWorksheets.AddCopy adds a new sheet to the destination buku kerja and copies the source sheet's sel values, formulas (re-encoded as text so the destination recompiles them against its own sheet names, keeping same-name 3D references live), merged cells, comments, hyperlinks, baris heights, kolom widths, outline levels, frozen panes, sheet protection, page setup, manual page breaks, tab color, and view settings; sel, baris, and kolom formats are migrated by nilai into the destination buku kerja's format table, so a styled source produces an independently styled copy
- Cross-buku kerja format migration in the classic XLS engine now carries the full-precision RGB and theme colors alongside each format entry, so fills, fonts, and borders keep their exact colors instead of falling back to palette approximations; this also applies to rentang-level paste between workbooks
Versi 2.94.0
Ditambahkan
- Cross-buku kerja lembar kerja copy now clones conditional formats (with their differential styles and the dataBar / colorScale / iconSet visual payloads), tables, data validations, and charts (with every series); each sub-objek deep-copies its own state into the destination lembar kerja
- Cross-buku kerja rumus references are rewritten: a reference whose sheet name exists in the destination resolves as-is, otherwise it becomes an external reference back to the source buku kerja (which is registered as an external link) or #REF! when the source has no file identity; the rewrite applies to sel formulas, conditional-format rules, data-validation formulas, and chart series ranges alike
Versi 2.93.0
Ditambahkan
- A lembar kerja can now be copied from one buku kerja into another: TXLSXSheets.AddCopy adds a new sheet to the destination buku kerja and copies the source sheet's cells, formulas, merged ranges, kolom/baris sizing, hidden/collapsed/outline flags, freeze panes, view state, protection, page setup, AutoFilter rentang, and tab colour onto it; the six per-sel style indices are remapped into the destination buku kerja's own Font/Fill/Border/NumberFormat/Alignment/Protection pools via nilai-equality lookup, so a styled source produces an independently-styled copy rather than indices pointing at the wrong pool
- The six per-attribute style pools (Fonts, Fills, Borders, NumberFormats, Alignments, Protections) each expose a 1-based LookupOrAdd that deduplicates by nilai; a new CrossWorkbookCopy sample project demonstrates the cross-buku kerja copy with style preservation
Versi 2.92.0
Ditambahkan
- XLSX workbooks now support pivot tables: TXLSXWorksheet.AddPivotTable scans a flat source rentang, auto-builds a pivot cache, and Mengembalikan typed pivot table for baris / kolom / page / data-axis wiring, mirroring the long-standing BIFF8 (XLS) engine API so the same code targets either format; PivotSetDataFieldFormat assigns a number format to each aggregated nilai field
- Excel-created pivot tables round-trip without loss through Open then Save: the XLSX engine preserves each pivot cache definition, cache records, and pivot table part verbatim and replays the original bytes on save, so re-saving a buku kerja never drops or alters its pivots even when they use features the typed model does not expose
Versi 2.91.0
Ditambahkan
- AutoFilter lembar kerja sekarang dapat diterapkan pada data sehingga buku kerja yang disimpan terbuka dengan baris yang tidak cocok sudah tersembunyi, meniru apa yang dilakukan Excel ketika suatu nilai dipilih dari dropdown filter
- Gambar yang disematkan mengekspos geometrinya dalam unit nyata (sentimeter, inci, poin) di samping nilai EMU, dan ukurannya dapat diubah dengan faktor skala dengan penguncian rasio aspek opsional
- Margin page-setup dapat diatur dalam sentimeter secara langsung, sebagai kenyamanan metrik di atas margin berbasis inci
- Lembar kerja XLSX yang dilindungi sekarang mengekspos lima belas sakelar izin terperinci (format cells, insert/delete rows and columns, sort, AutoFilter, select locked/unlocked cells, dan lainnya) melalui properti AllowOption baru, mencocokkan daftar kotak centang Review > Protect Sheet milik Excel; pengaturan per tindakan dipertahankan sepanjang siklus simpan-buka file
- Lembar kerja XLSX sekarang dapat diduplikasi (TXLSXSheets.Duplicate): sheet baru ditambahkan dan cells, merged ranges, ukuran baris/kolom, freeze panes, status tampilan, perlindungan, page setup, dan warna tab sheet sumber disalin ke dalamnya, meniru klik kanan Excel > Move or Copy > Create a copy
- Dua puluh dua proyek sampel baru mencakup kemampuan yang didukung pustaka: enkripsi workbook, komentar cell, hyperlink, defined names, evaluasi AutoFilter, gambar yang disematkan, templat faktur, conditional formatting XLSX lanjutan, sel yang digabungkan, outliner baris/kolom, freeze panes, tata letak multi-sheet, rumus array, salin/pindah rentang, temukan/ganti, sistem tanggal, rich text, CSV lanjutan, opsi ekspor HTML, format angka kustom, baris/kolom tersembunyi, dan perlindungan lembar kerja
Versi 2.90.29
Diubah
- Pembaca langsung streaming (streaming direct reader) sekarang menghitung setiap sel yang terisi bahkan ketika tidak ada handler per-sel yang dilampirkan, sehingga panggilan ReadFile biasa dapat digunakan untuk mengukur lembar kerja dengan cepat; jumlah yang dikembalikan dan properti CellCount melaporkan jumlah sel terisi yang dipindai
Versi 2.90.28
Ditambahkan
- Rumus sekarang dapat dievaluasi langkah demi langkah, setara dengan perintah Evaluasi Rumus di Excel: pelacak baru menyederhanakan ekspresi satu sub-langkah pada satu waktu, dimulai dari yang paling dalam, dan melaporkan setiap penyederhanaan dengan sub-ekspresi sumbernya, sub-ekspresi yang sama setelah operannya diganti dengan nilainya, dan nilai yang dihasilkan, sehingga aplikasi dapat menunjukkan bagaimana suatu hasil dibangun; ia menghormati prioritas operator, menjaga referensi rentang tetap utuh untuk fungsi seperti SUM, dan menggunakan kembali mesin perhitungan lembar kerja sehingga setiap langkah sesuai dengan perhitungan ulang penuh
Versi 2.90.27
Ditambahkan
- Buku kerja XLSX sekarang dapat diproduksi sel demi sel melalui penulis langsung streaming (streaming direct writer) baru yang memancarkan setiap lembar kerja langsung ke dalam paket saat baris tiba, tanpa membangun pohon sel di memori secara penuh, sehingga file yang sangat besar dapat dihasilkan dengan jejak memori yang hampir konstan; penulis ini menangani string sebaris, angka, boolean, tanggal, dan rumus di beberapa lembar dan dapat bertukar dengan pembaca langsung streaming
Versi 2.90.26
Ditambahkan
- Buku kerja XLSX sekarang dapat dipindai sel demi sel melalui pembaca langsung streaming (streaming direct reader) baru yang memunculkan peristiwa per sel dan per lembar tanpa membangun pohon sel di memori secara penuh, menjaga jejak memori hampir konstan untuk file yang sangat besar; setiap sel yang dilaporkan membawa nilainya, jenis (angka, string, boolean, tanggal, atau kesalahan), teks rumus, dan indeks gaya, dengan dukungan deteksi tanggal opsional dan penghentian awal
Versi 2.90.25
Ditambahkan
- Lembar kerja XLS klasik sekarang dapat menambahkan hyperlink dari referensi sel bergaya A1 sambil mempertahankan normalisasi URL, sub-alamat target buku kerja, teks tampilan, dan tip layar
Versi 2.90.24
Ditambahkan
- Pemisah halaman XLS klasik sekarang dapat ditambahkan dari posisi baris atau kolom (basis satu) dan referensi sel gaya A1 melalui koleksi pemisah halaman dan kelebihan metode pembantu lembar kerja
Versi 2.90.23
Ditambahkan
- Lembar kerja XLS klasik dan koleksi bentuk sekarang dapat membuat objek gambar persegi panjang, oval, garis, dan bentuk otomatis yang diketik dari string rentang gaya A1
Versi 2.90.22
Ditambahkan
- Koleksi bentuk XLS klasik sekarang dapat membuat kotak teks dari string rentang gaya A1 melalui kelebihan metode AddTextBox
Versi 2.90.21
Ditambahkan
- Kotak teks XLS klasik sekarang dapat diposisikan ulang dari string rentang gaya A1 melalui kelebihan metode SetArea baru
Versi 2.90.20
Ditambahkan
- Kotak teks lembar kerja XLS klasik sekarang dapat dibuat dari string rentang gaya A1 melalui kelebihan metode AddTextBox
Versi 2.90.19
Ditambahkan
- Lembar kerja XLS klasik sekarang dapat membuat kotak teks gambar secara langsung dari jangkar baris dan kolom melalui metode AddTextBox baru
Versi 2.90.18
Ditambahkan
- Lembar kerja XLS klasik sekarang dapat membuat komentar sel secara langsung dari koordinat baris dan kolom melalui kelebihan metode AddComment baru
Versi 2.90.17
Ditambahkan
- Nama yang ditentukan XLS klasik sekarang dapat dibuat dari nama lembar kerja dan koordinat baris/kolom melalui kelebihan metode Names.Add baru
Versi 2.90.16
Ditambahkan
- Penyisipan gambar XLS klasik sekarang dapat menempatkan gambar file dan TBitmap pada sel lembar kerja yang disediakan tanpa mengubah pilihan saat ini
Versi 2.90.15
Ditambahkan
- Kolom AutoFilter XLS klasik sekarang dapat ditemukan berdasarkan indeks bidang melalui koleksi AutoFilterColumns
Versi 2.90.14
Ditambahkan
- Nama yang ditentukan XLS klasik sekarang dapat ditemukan berdasarkan sel lembar kerja melalui kelebihan metode FindByCell baru pada koleksi Names
Versi 2.90.13
Ditambahkan
- Rentang XLS klasik sekarang mendukung pembuatan komentar dengan teks dan pembuat dalam satu panggilan AddComment
Versi 2.90.12
Ditambahkan
- Komentar XLS klasik sekarang mengekspos properti Author untuk mengatur dan membaca pembuat komentar yang disimpan melalui API yang diketik
Versi 2.90.11
Diperbaiki
- Salinan rentang XLS klasik sekarang mempertahankan pembuat komentar yang disalin bersama dengan teks komentar
Versi 2.90.10
Diperbaiki
- AddHyperlink XLS klasik sekarang menyimpan target sel buku kerja sebagai sub-alamat internal alih-alih jalur file eksternal
Versi 2.90.9
Diperbaiki
- Salinan rentang XLS klasik sekarang mempertahankan hyperlink sel di tujuan, termasuk alamat, tip layar, dan teks yang ditampilkan
Versi 2.90.8
Diperbaiki
- Hyperlink XLS dan XLSX sekarang menormalkan alamat www biasa menjadi URL http absolut sebelum menyimpan sambil mempertahankan teks yang ditampilkan
Versi 2.90.7
Diperbaiki
- ApplyAutoFilter XLS klasik sekarang mengabaikan indeks bidang di luar rentang sebelum membangun kembali rentang filter, mempertahankan kriteria yang ada alih-alih menghapusnya
Versi 2.90.6
Diperbaiki
- Seri bagan XLS klasik sekarang menolak referensi diri lembar bagan tanpa membedakan huruf besar-kecil, mencegah sumber data Area3D yang tidak valid saat huruf nama lembar berbeda
Versi 2.90.5
Diperbaiki
- Lembar bagan XLS klasik sekarang menggunakan perlindungan nama lembar kerja normal saat menerapkan nama lembar bagan khusus, mencegah duplikat nama yang hanya berbeda pada huruf besar-kecil
Versi 2.90.4
Diperbaiki
- Tabel pivot XLS klasik sekarang mencocokkan nama lembar kerja sumber tanpa membedakan huruf besar-kecil saat membuat atau menggunakan kembali cache pivot
Versi 2.90.3
Diperbaiki
- Pergantian nama lembar kerja XLS klasik sekarang menolak duplikat tanpa membedakan huruf besar-kecil, menjaga perilaku pencarian agar tidak ambigu setelah pergantian nama
Versi 2.90.2
Diperbaiki
- Pencarian nama lembar kerja XLS klasik sekarang tidak membedakan huruf besar-kecil di SheetByName, TryGetSheetByName, Index, dan IDByName
Versi 2.90.1
Diperbaiki
- Pencarian nama yang ditentukan XLS klasik sekarang tidak membedakan huruf besar-kecil, sehingga nama yang diselesaikan melalui koleksi Names buku kerja berperilaku konsisten setelah disimpan dan dibuka kembali
Versi 2.90.0
Diubah
- PERUBAHAN TIDAK KOMPATIBEL — koleksi worksheet XLSX sekarang berbasis 1.
Workbook.Sheets[i],Sheets.IndexByName, dan properti integerActiveSheetsekarang menghitung dari 1 agar sesuai dengan engine XLS, sehingga worksheet pertama adalahSheets[1], bukanSheets[0]; helper posisiActiveIndex,Activate,Movedan argumen indeks sheet padaSaveAsCSV/SaveAsHTML/SaveAsRTFtetap berbasis 0 - PERUBAHAN TIDAK KOMPATIBEL — FreezePanes menerima baris terlebih dahulu pada kedua engine. Engine XLS dan XLSX sekarang berbagi
FreezePanes(ARow, ACol); metode XLSXFreezePane(ACol, ARow)dan overload XLS dua argumen terbalik dihapus, sehingga pemanggilan yang membekukan N kolom dan M baris harus menukar kedua argumennya - PERUBAHAN TIDAK KOMPATIBEL — kelas worksheet XLS kehilangan prefiks I yang menyesatkan.
IXLSWorksheetdanIXLSWorkSheetsmenjadiTXLSWorksheetdanTXLSWorksheets(keduanya selalu berupa kelas, bukan interface); interface asliIXLSWorkbookdanIXLSRangetidak berubah - PERUBAHAN TIDAK KOMPATIBEL — enum operator validasi data XLS diganti nama. Anggota
TXLSDvOperatorberubah darixlsDv...menjadixlsDvOp...(misalnyaxlsDvOpBetween), sehingga tidak lagi berbagi prefiks dengan enum jenis validasi dan selaras dengan nama XLSXxlsxDvOp...
Versi 2.89.46
Diperbaiki
- Tema kustom bertahan melalui putaran XLSX. Membuka workbook yang membawa tema sendiri lalu menyimpannya lagi mempertahankan tema tersebut alih-alih menggantinya dengan tema Office bawaan, sehingga warna berbasis tema tidak lagi ditimpa diam-diam
- Region gabungan yang tumpang tindih ditolak. Menggabungkan rentang sel yang beririsan dengan region gabungan yang sudah ada sekarang ditolak, bukan menulis entri tumpang tindih yang membuat Excel melaporkan file tersimpan sebagai rusak
- Tanggal yang ditulis sebagai nilai sel ditampilkan sebagai tanggal. Menetapkan tanggal atau waktu ke sel yang masih memakai format angka General sekarang menerapkan format tanggal default, sehingga tampil sebagai tanggal di Excel, bukan angka seri mentah; format angka yang Anda atur sendiri tetap tidak berubah
Keamanan
- Formula yang sangat dalam bersarang tidak lagi dapat menghabiskan stack. Pembaca formula .xls membatasi seberapa dalam token formula boleh bersarang, sehingga workbook yang cacat atau berbahaya dengan sarang ekstrem ditolak alih-alih berisiko crash
Versi 2.89.45
Diperbaiki
- Nama entri ZIP yang ditandai sebagai UTF-8 terbaca dengan benar Saat arsip menandai nama anggota sebagai UTF-8 (general-purpose bit 11), nama tersebut didekode sebagai UTF-8, bukan code page lokal arsip
- Sel error literal di .xls dipertahankan Sel yang disimpan langsung sebagai nilai error (record BOOLERR dengan flag error aktif) mempertahankan kode errornya, bukan terbaca kosong
- Enkripsi paket yang lebih besar dari 2 GB gagal dengan rapi Enkripsi standar menolak payload yang terlalu besar alih-alih meluapkan aritmetika ukuran 32-bitnya
Versi 2.89.44
Diperbaiki
- Ekspor formula ODS mempertahankan nama terdefinisi apa adanya Nama terdefinisi yang mirip referensi sel (misalnya
TaxRate2) tidak lagi ditulis ulang sebagai alamat sel ODF yang tidak valid, dan penguraian_xlnm.Print_Titlestidak lagi memecah nama sheet yang berisi koma - Impor ODS aman melewati kolom terakhir Baris yang sel-sel teks berformat berulangnya memanjang melewati kolom terakhir lembar kerja tidak lagi memakai ulang prototipe rich-text yang sudah dibebaskan
Versi 2.89.43
Diperbaiki
- Ekspor RTF mempertahankan teks non-ASCII Teks sel ditulis dengan escape Unicode
\udan header menyatakan code page, sehingga karakter CJK / Sirilik / beraksen diekspor utuh alih-alih menyusut menjadi "?" di bawah code page penulis - Frame navigasi HTML multi-halaman meng-escape nama sheet Nama sheet di halaman index / frameset di-escape sebagai HTML dan karakter non-ASCII diubah menjadi numeric character references, sehingga tab yang dinamai dengan karakter markup atau huruf non-ASCII dirender dengan benar
Versi 2.89.42
Diperbaiki
- Angka notasi ilmiah di formula kini diuraikan Literal seperti
1E3atau2.5E-3di dalam formula sekarang ditokenisasi sebagai satu angka, bukan angka yang diikuti nama nyasar - SEARCH aman untuk Unicode Fungsi SEARCH yang tidak peka huruf besar-kecil tidak lagi mengubah huruf besar-kecil lewat code page ANSI, sehingga find-text / within-text non-ASCII cocok pada posisi karakter yang tepat
Versi 2.89.41
Diperbaiki
- Sistem tanggal 1904 diterapkan pada tanggal sel XLSX Saat membaca atau menulis workbook yang memakai basis tanggal Mac 1904, serial tanggal kini digeser 1462 hari, sehingga tanggal di workbook seperti itu cocok dengan Excel alih-alih meleset sekitar empat tahun
Versi 2.89.40
Diperbaiki
- Tanggal di file XLSX pihak ketiga dimuat sebagai tanggal Sel yang gayanya memakai format angka tanggal/waktu bawaan atau kustom apa pun — bukan hanya gaya tanggal bawaan HotXLS — sekarang dibaca kembali sebagai nilai tanggal, bukan serial mentah, termasuk format tanggal/waktu lokal CJK
Versi 2.89.39
Diperbaiki
- Format angka tanggal kini dideteksi lebih akurat Kode format dikenali sebagai tanggal/waktu hanya oleh token tanggal yang tidak di-escape di luar literal string dan bagian bracket, sehingga literal seperti
#,##0 "MM"tidak lagi dianggap sebagai tanggal dan kode satu huruf sepertim/dtidak lagi terlewat - Arsip ZIP dengan komentar besar membaca record end-of-directory dengan benar Record end-of-central-directory diurai dari scan buffer hanya saat seluruhnya tertangkap, dan jika tidak akan dibaca ulang dari file, memperbaiki kemungkinan salah baca ketika komentar memecah record melintasi jendela pemindaian
Versi 2.89.38
Diperbaiki
- XLSX terenkripsi yang ditulis dengan Standard Encryption kini terbuka di Excel Paket terenkripsi dienkripsi dengan AES-128 dalam mode ECB sesuai yang disyaratkan format, bukan CBC, yang sebelumnya membuat semua yang sesudah blok pertama tidak terbaca
- Dekripsi RC4 BIFF8 (.xls) yang diproteksi sandi sudah diperbaiki Keystream kini di-rekey dan dikonsumsi sejalan dengan posisi stream, sehingga sandi yang benar mendekripsi isi workbook alih-alih menghasilkan sel berantakan
Versi 2.89.37
Diperbaiki
- Menghapus worksheet menjaga nama terdefinisi tetap konsisten Menghapus sebuah sheet kini menghapus nama terdefinisi workbook yang cakupannya ada di sheet itu dan menggeser nama yang cakupannya berada di sheet berikutnya turun satu, sehingga workbook yang disimpan tidak lagi menunjuk nama dengan cakupan sheet (seperti print area atau print title) ke worksheet yang salah
Versi 2.89.36
Diperbaiki
- Membaca file .xls yang rusak kini lebih tangguh Record number / blank multi-sel dan palet warna tidak lagi membaca melewati batas saat field panjangnya rusak, dan pembaca workbook dibebaskan alih-alih bocor ketika membuka file memunculkan error
- Penambahan gambar tidak lagi bocor saat gagal Memuat gambar yang rusak atau tak bisa dibaca (BMP / WMF / EMF / JPEG / PNG) membebaskan stream sementara dan bitmap-nya alih-alih membocorkannya
- Record style duplikat dihindari saat menyimpan Style yang kecocokan pertamanya adalah entri tabel paling awal kini dibagikan dengan benar alih-alih ditulis dua kali selama optimisasi style BIFF
- Ekspor HTML meng-escape nama font, sehingga nama font yang berisi
&,<,>, atau"tidak lagi merusak atribut style sel yang diekspor
Versi 2.89.35
Diperbaiki
- Beberapa fungsi worksheet kini cocok dengan Excel
EXPmengembalikan hasilnya alih-alih error "unsupported",WEEKDAYsatu argumen menomori Minggu sebagai 1,MODmempertahankan tanda dan bagian pecahan pembagi, danLEFT/RIGHT/MIDmengembalikan#VALUE!untuk panjang negatif atau jumlah argumen yang salah - Referensi karakter numerik non-ASCII di XLSX kini terbaca dengan benar Entitas XML numerik seperti
中di shared strings, teks sel, dan atribut didekode menjadi karakter utuh, bukan satu byte yang terpotong - Aturan teks conditional-format tetap aman terhadap tanda petik ganda Teks yang berisi
"di aturan `containsText` / `beginsWith` / `endsWith` di-escape sehingga workbook yang disimpan tetap valid - Edit rentang conditional-format tidak lagi menyisakan rentang nyasar Mengosongkan atau memindahkan sebuah kolom keluar dari area conditional-format tidak lagi menghasilkan rentang phantom yang saling tumpang tindih
- Warna tab sheet terindeks yang dibaca dari .xls memakai entri palet yang benar, dan tanggal berformat angka di dalam record multi-sel (MULRK) tetap terdeteksi sebagai tanggal di bawah sistem tanggal 1904
- Kriteria AutoFilter persentase atas / bawah tetap utuh dalam siklus simpan-buka Memuat filter "top N percent" atau "bottom N percent" dari `.xls` tidak lagi menurunkannya menjadi hitungan item biasa
- Hyperlink `mailto:` dikenali sebagai URL, dan ScreenTip hyperlink (tooltip) ditulis sehingga tetap utuh dalam siklus simpan-buka alih-alih dibuang
- Ekspor HTML menghasilkan ukuran font yang valid di locale desimal-koma, sehingga font sel yang diekspor tidak lagi jatuh kembali ke default browser
- Membaca file yang rusak atau terpotong kini lebih tangguh Gambar OfficeArt yang rusak, indeks style / color / palette / theme yang di luar rentang, dan JPEG non-baseline tidak lagi menyebabkan crash atau menghasilkan ukuran sampah, dan memory leak shared strings saat memuat rich text telah diperbaiki
Versi 2.89.34
Ditambahkan
- Kotak teks worksheet XLSX lebih mudah dikelola
TXLSXWorksheetmenambahkanIndexOfTextBoxAt,FindTextBoxAt,DeleteTextBox,DeleteTextBoxAt,DeleteTextBoxesInRange, danClearTextBoxes, sehingga pemanggil dapat mencari dan menghapus kotak teks drawing mandiri berdasarkan sel jangkar atau rentang yang beririsan - Page break manual XLSX dapat dilokasikan dan dihapus berdasarkan rentang
TXLSXWorksheetmenambahkanIndexOfRowBreak,IndexOfColBreak,RemoveRowBreaksInRange, danRemoveColBreaksInRangeuntuk pemeliharaan page break baris / kolom secara langsung
Diperbaiki
- Worksheet XLSX yang hanya berisi text box kini menulis hubungan drawing Worksheet yang berisi text box drawing mandiri tetapi tanpa gambar, chart, komentar, hyperlink, atau tabel kini mengeluarkan hubungan drawing
xl/worksheets/_rels/sheetN.xml.relsyang sesuai sehingga paket tersimpan menyelesaikan referensi<drawing r:id="...">miliknya
Versi 2.89.33
Diubah
- Demo workbench C++Builder kini cocok dengan fitur review Delphi Sample `WorkbookAudit` C++Builder menghasilkan tingkat keparahan, tindakan yang disarankan, dan bukti review yang sama seperti versi Delphi pada daftar workbook serta pada laporan JSON, CSV, dan HTML, dan sample `ConversionWorkbench` C++Builder merekam format sumber, tindakan, dan catatan review per tugas konversi, termasuk jumlah tindakan teragregasi di laporan HTML
Versi 2.89.32
Diubah
- Demo `ConversionWorkbench` kini berjalan tanpa pengawasan dari command line Memanggil
ConversionWorkbench.exe <folder> [/targets=xlsx,csv,html] [/persheet] [/skip] [/quiet]memindai folder, mengonversi setiap sumber ke format target yang diminta, menulis laporan konversi, dan keluar;/quietmembuat jendela tetap tersembunyi agar konversi bisa berjalan dari skrip dan scheduled task - Konversi batch tetap interaktif Progress bar melacak daftar tugas (sumber yang dicentang dikali target yang dicentang), tombol Cancel menghentikan batch dengan laporan yang mencakup tugas yang sudah selesai, dan klik ganda pada baris hasil membuka file yang dihasilkan (atau folder output untuk set CSV per sheet)
- Opsi Workbench tetap tersimpan antar sesi Folder, format target, delimiter, opsi HTML, pengaturan ODS, CSV per sheet, skip-existing, dan pilihan streaming disimpan dalam file INI di sebelah executable; password enkripsi sengaja tidak disimpan
Versi 2.89.31
Diubah
- Demo `WorkbookAudit` kini berjalan tanpa pengawasan dari command line Memanggil
WorkbookAudit.exe <folder> [/r] [/quiet]memindai folder (opsional dengan subfolder), mengaudit setiap workbook, mengekspor laporan JSON, CSV, dan HTML, lalu keluar;/quietmembuat jendela tetap tersembunyi agar audit bisa berjalan dari skrip dan scheduled task - Batch besar tetap interaktif Progress bar melacak batch, tombol Cancel menghentikannya (file yang tersisa ditandai Cancelled), dan memilih workbook kini mengisi panel rincian per sheet dengan detail struktur, formula, referensi, dan proteksi
- Pilihan folder audit dan subfolder tetap tersimpan Opsi disimpan dalam file INI di sebelah executable dan dipulihkan pada saat start berikutnya
Versi 2.89.30
Diubah
- Demo `WorkbookAudit` kini menghasilkan tingkat keparahan review dan tindakan yang disarankan Daftar utama plus laporan JSON, CSV, dan HTML mencakup tingkat keparahan, tindakan yang disarankan, dan bukti review sehingga audit batch bisa mengarahkan workbook terenkripsi, berisi macro, tertaut eksternal, terlindungi, banyak style, atau banyak formula tanpa membaca setiap baris sheet
- Demo `ConversionWorkbench` kini menulis catatan review konversi Setiap tugas merekam format sumber, tindakan, dan catatan review, dan laporan HTML mengagregasi jumlah tindakan untuk output yang diterima, set CSV per sheet, file yang dipakai ulang, pilihan target yang tidak didukung, perbaikan sumber, kandidat percobaan ulang, dan hasil review manual
Versi 2.89.29
Ditambahkan
- Workbook XLS klasik kini membaca properti dokumen kembali saat dibuka Membuka file atau stream `.xls` yang sudah ada mengisi
Title,Subject,Author,Keywords,Comments,CompanydanManagerdari summary information file, cocok dengan perilaku properti dokumen model XLSX; properti yang disimpan oleh Excel sendiri, termasuk teks non-Latin yang disimpan di code page ANSI lokal, didekode dengan benar
Versi 2.89.28
Diubah
- Demo `ConversionWorkbench` mendapat empat opsi berorientasi batch Sample Delphi dan C++Builder kini bisa memecah setiap worksheet menjadi file CSV sendiri (
<name>.<sheet>.csv, untuk sumber classic XLS maupun model XLSX), menulis output XLSX yang diproteksi sandi melaluiSaveAsEncrypted(termasuk jalur bridge classic-XLS), melewati konversi yang output-nya sudah ada (dilaporkan sebagai skipped, bukan dijalankan ulang), dan mengaktifkan penulisan XLSX streaming untuk workbook besar
Versi 2.89.27
Diubah
- Demo `WorkbookAudit` kini memindai lebih dalam dan menandai penanda risiko Sample Delphi dan C++Builder mendapat rekursi subfolder dengan nama file relatif terhadap folder, deteksi XLSX yang diproteksi sandi lewat
CanReadEncrypted(dilaporkan sebagai terenkripsi alih-alih error buka generik), dan kolom Flags yang menampilkan proyek VBA, referensi eksternal, sheet tersembunyi, sheet terlindungi, dan file terenkripsi sekilas di daftar maupun di setiap laporan - Laporan audit membawa metadata yang lebih kaya Laporan JSON mengelompokkan seluruh set properti dokumen (title, subject, author, keywords, company, manager, description, category, created, modified, last modified by) ke dalam objek
docProps, dan ketiga format laporan menambahkan jumlah gambar per sheet; nama terdefinisi level sheet kini dikumpulkan bersama nama tingkat workbook untuk file classic XLS
Versi 2.89.26
Ditambahkan
- Demo Delphi dan C++Builder kini menyertakan converter batch `ConversionWorkbench` Sample baru mengumpulkan sumber XLS, XLSX, CSV, dan ODS dari sebuah folder, mengonversi file yang dicentang dalam satu run ke kombinasi target XLSX, CSV, HTML, RTF, ODS, dan XLS apa pun, dan meneruskan tiap sumber melalui object model yang sesuai, termasuk bridge
SaveXLSWorkbookAsXLSXuntuk classic XLS dan jalur dua langkah XLS-ke-ODS - Opsi konversi ditampilkan per format Form menawarkan pilihan delimiter CSV, opsi judul HTML dan kelas tabel, serta switch penyertaan chart dan gambar ODS; arah XLSX-ke-XLS yang tidak tersedia dilaporkan sebagai unsupported alih-alih gagal diam-diam
- Setiap run menulis laporan konversi
ConversionReport.csvdanConversionReport.htmlmencatat status per tugas, waktu, dan ukuran output di sebelah file yang dikonversi, dan generator sample membuat input XLS, XLSX, CSV, dan ODS sehingga workbench bisa langsung dijalankan
Versi 2.89.25
Ditambahkan
- Demo Delphi dan C++Builder kini menyertakan tool audit batch `WorkbookAudit` Sample baru memindai sebuah folder berisi workbook XLS dan XLSX dan meringkas struktur worksheet, jumlah formula beserta nama fungsi yang dipakai, referensi workbook eksternal (entri external-link, referensi formula dalam tanda kurung siku, dan target nama terdefinisi), hyperlink, penggunaan style, rentang gabungan, komentar, tabel, conditional format, data validation, chart, rentang AutoFilter, frozen pane, dan status proteksi
- Hasil audit diekspor sebagai laporan JSON, CSV, dan HTML Satu klik menulis
AuditReport.json,AuditReport.csv, danAuditReport.htmldi samping file yang diaudit, mencakup metadata level workbook, kumpulan style, nama terdefinisi, dan baris detail per sheet - Demo audit ini mandiri Generator sample membuat workbook classic XLS dan XLSX dengan formula, tautan eksternal, sheet tersembunyi, hyperlink, komentar, tabel, chart, dan sheet terlindungi, sehingga alur audit penuh bisa langsung dijalankan
Versi 2.89.24
Diperbaiki
- Ekspor CSV XLSX kini menulis hasil formula yang dihitung
TXLSXWorkbook.SaveAsCSVmengevaluasi sel formula melalui mesin formula workbook sebelum menulis teks CSV atau TSV, sehingga sel yang hanya berisi formula mengekspor nilai yang ditampilkan, bukan teks formula
Versi 2.89.23
Ditambahkan
- Ekspor OpenDocument kini bisa disetel dengan opsi Objek export-options baru memungkinkan
.odsyang disimpan mengecualikan chart atau gambar tersemat dan menimpa string generator yang dicatat di metadata dokumen, lewat overload `SaveAsODS` baru yang menerima opsi - Konten yang dikecualikan tidak meninggalkan jejak Mematikan chart atau gambar menghapus folder objek, frame drawing, dan entri manifest sekaligus, sehingga paket yang disimpan tidak pernah membawa referensi yatim
Versi 2.89.22
Ditambahkan
- File OpenDocument kini terbuka lewat pemanggilan open biasa Memberikan file atau stream
.odske metode open umum mendeteksi paket OpenDocument dan memuatnya otomatis, jadi tidak perlu lagi tahu sebelumnya apakah file itu.xlsxatau.ods - Shortcut `SaveAsODS` telah ditambahkan Menyimpan ke OpenDocument tidak lagi memerlukan penerusan nilai file-format, meniru cara format lain disimpan
- Format yang dimuat kini bisa ditanyakan Properti `SourceFormat` melaporkan apakah workbook yang dibuka berasal dari file OpenXML atau OpenDocument
Versi 2.89.21
Diperbaiki
- Run superscript dan subscript tetap terjaga saat rich text disimpan ke
.xlsxRun yang ditandai sebagai superscript atau subscript di dalam sel bergaya kini menulis posisi vertikalnya ke shared string dan membacanya kembali, sehingga teks yang dinaikkan atau diturunkan tetap utuh dalam siklus simpan-buka.xlsxalih-alih jatuh ke baseline - Superscript dan subscript terbawa lintas format Rich text yang dibaca dari file
.odsmempertahankan run superscript dan subscript saat workbook disimpan ulang sebagai.xlsxlalu dibuka kembali
Versi 2.89.20
Ditambahkan
- Ekspor dan impor ODS kini membawa conditional format colour-scale dan data-bar Skala dua atau tiga warna dan data bar ditulis bersama titik nilai dan warnanya lalu dibaca kembali, memperluas aturan perbandingan yang sudah ada sehingga format grafis ini tetap utuh dalam siklus simpan-buka
.ods - Conditional format berbasis formula kini didukung Aturan yang digerakkan formula ditulis sebagai kondisi is-true-formula dengan ekspresinya diterjemahkan ke sintaks OpenDocument, lalu dibaca kembali sebagai aturan formula, bersama aturan cell-value yang sudah ada
Versi 2.89.19
Ditambahkan
- Ekspor dan impor ODS kini membawa input prompt data-validation Judul prompt dan teks yang ditampilkan saat sel yang divalidasi dipilih ditulis bersama error alert yang sudah ada dan dibaca kembali, sehingga pesan input tetap utuh dalam siklus simpan-buka
.ods - Warna tab sheet dipertahankan Warna tab sheet ditulis ke dan dibaca dari file
.ods, dan impor menerima baik atribut ekstensi umum maupun atribut tab-colour OpenDocument standar
Versi 2.89.18
Ditambahkan
- Ekspor dan impor ODS kini membawa grup baris dan kolom Grup outline ditulis sebagai elemen grup baris dan kolom bertingkat lalu dibaca kembali, sehingga baris dan kolom yang dikelompokkan mempertahankan level outline-nya dalam siklus simpan-buka
.ods, termasuk beberapa level nesting - Grup yang diciutkan tetap diciutkan Grup yang baris atau kolomnya diciutkan ditandai sebagai tidak ditampilkan saat disimpan dan dipulihkan saat dimuat, dan pengelompokan berjalan bersama baris tersembunyi, page break, serta pengaturan ukuran baris atau kolom tanpa saling mengganggu
Versi 2.89.17
Ditambahkan
- Ekspor dan impor ODS kini membawa print area Rentang cetak sebuah sheet ditulis ke dan dibaca kembali dari file
.ods, sehingga print area yang didefinisikan tetap utuh saat disimpan dan dimuat ulang - Page break manual dipertahankan Page break baris dan kolom ditulis sebagai penanda break-before pada baris dan kolom yang terdampak lalu dibaca kembali saat dimuat, sehingga pagination manual tetap utuh melalui
.ods
Versi 2.89.16
Ditambahkan
- Ekspor dan impor ODS kini membawa header dan footer Menyimpan ke
.odsmenulis header dan footer setiap sheet beserta area kiri, tengah, dan kanan, dan membuka file.odsmembacanya kembali, sehingga field nomor halaman, jumlah halaman, tanggal, waktu, dan nama sheet plus teks literal tetap utuh dalam siklus simpan-buka - Setiap sheet mempertahankan header dan footer-nya sendiri Workbook yang sheet-nya membawa header atau footer berbeda kini menulis page style terpisah per sheet, sehingga setiap sheet dimuat ulang dengan header dan footer-nya sendiri alih-alih berbagi sheet pertama
Versi 2.89.15
Ditambahkan
- Ekspor dan impor ODS kini membawa rotasi teks Sel yang teksnya diputar mempertahankan sudutnya melalui simpan dan muat ulang
.ods, dengan sudut searah dan berlawanan arah jarum jam dipetakan dengan benar antara konvensi spreadsheet dan OpenDocument - Indent sel dipertahankan Level indent sel ditulis sebagai margin kiri saat disimpan dan dibaca kembali saat dimuat, sehingga sel yang di-indent mempertahankan kedalamannya dalam siklus simpan-buka
.ods
Versi 2.89.14
Ditambahkan
- Ekspor ODS kini menulis rich text Menyimpan sel yang teksnya mencampur beberapa run format ke
.odsmenghasilkan satu span teks per run dengan automatic style `text-family` miliknya sendiri, sehingga nama font, ukuran, bold, italic, underline, strikethrough, colour, dan superscript atau subscript tetap bertahan saat disimpan alih-alih diratakan menjadi satu format - Style run yang identik dibagikan Run yang membawa format sama memakai ulang satu entri automatic style alih-alih menghasilkan duplikat per run, dan sel biasa tetap ditulis sebagai satu paragraf tanpa span
Versi 2.89.13
Ditambahkan
- Impor ODS kini menjaga format rich text Membuka file
.odsyang selnya mencampur beberapa span teks dengan format berbeda mempertahankan tiap run alih-alih meratakan sel menjadi teks polos, sehingga nama font, ukuran, bold, italic, underline, strikethrough, colour, dan superscript atau subscript terbawa per run - Sel polos tetap polos Sel dengan satu run tanpa format, serta sel numerik, tanggal, atau formula apa pun, tetap menjadi nilai biasa alih-alih dinaikkan menjadi rich text
Versi 2.89.12
Ditambahkan
- Impor ODS kini membaca chart Membuka file
.odsmenguraikan setiap objek chart tersemat yang dirujuk dari worksheet, sehingga chart column, bar, line, pie, area, doughnut, scatter, bubble, dan radar dipulihkan ke sheet pemiliknya, melengkapi siklus simpan-buka bersama ekspor chart - Rentang seri chart dipulihkan Setiap seri membawa rentang nilainya, dan rentang kategori bila ada, dikonversi kembali dari penulisan rentang sel OpenDocument sehingga chart menunjuk ke data worksheet yang sama
- Chart yang rusak atau hilang dilewati dengan aman Frame drawing yang objek chart-nya absen atau bukan chart tidak lagi membatalkan pemuatan, dan gambar cadangan di frame yang sama tetap diimpor
Versi 2.89.11
Ditambahkan
- Ekspor ODS kini menulis gambar tersemat Menyimpan ke
.odsmenyimpan setiap gambar worksheet di folder paketPictures/, merujuknya dari drawing frame di dalam sel jangkar-nya, dan mendaftarkannya di manifest, sehingga gambar yang ditempatkan di workbook ikut terbawa ke file yang disimpan - Ukuran gambar dipertahankan Setiap gambar menulis lebar dan tingginya dalam sentimeter, sehingga gambar yang disimpan ke
.odslalu dibuka kembali mempertahankan ukuran layar yang sama - Gambar pada sel gabungan tetap berjangkar Gambar yang anchor-nya jatuh di dalam rentang gabungan ditempatkan pada sel kiri atas rentang itu, dan gambar yang berjangkar di luar grid sheet dilewati alih-alih ditulis sebagai entri tanpa drawing frame
Versi 2.89.10
Diperbaiki
- Level error data validation ODS kini tetap utuh dalam siklus simpan-buka Menyimpan validasi yang alert-nya berupa warning atau information tidak lagi mengekspornya tanpa jenis alert, sehingga membuka kembali file
.odsmempertahankan level aslinya alih-alih diam-diam menurunkannya menjadi stop alert
Versi 2.89.9
Ditambahkan
- Ekspor ODS kini menulis chart Menyimpan ke
.odsmenserialisasi setiap chart worksheet ke dalam subdokumen chart tersematnya sendiri di dalam paket, sehingga chart column, bar, line, pie, area, doughnut, scatter, bubble, dan radar ikut terbawa ke file yang disimpan - Chart direferensikan dari sheet pemiliknya Sheet yang memiliki chart menaut ke objek chart tersemat melalui drawing frame, dan setiap objek chart didaftarkan di manifest paket sehingga LibreOffice membuka dokumen tanpa melaporkannya sebagai rusak
- Rentang seri diterjemahkan Setiap seri chart membawa rentang nilainya, dan rentang kategori bila ada, yang dikonversi ke penulisan rentang sel OpenDocument sehingga chart menunjuk ke data worksheet yang sama
Versi 2.89.8
Ditambahkan
- Impor ODS kini membaca gambar tersemat Membuka file
.odsmengekstrak gambar yang disimpan di folder paketPictures/, mengenali gambar PNG, JPEG, GIF, dan BMP berdasarkan kontennya, sehingga drawing yang berjangkar di sel terbuka kembali sebagai gambar worksheet - Penempatan gambar dipertahankan Setiap gambar yang diimpor mempertahankan sel jangkar dari drawing frame yang menampungnya, dan lebar serta tingginya dikonversi dari dimensi tersimpan frame
- Artwork yang hilang dilewati dengan aman Drawing frame yang gambar rujukannya absen dari paket dilewati tanpa error, sehingga dokumen parsial tetap bisa dibuka
Versi 2.89.7
Ditambahkan
- Ekspor ODS kini menulis freeze panes Menyimpan ke
.odsmencatat kolom dan baris beku setiap sheet di pengaturan tampilan paket, sehingga sheet yang terbelah menjadi header beku terbuka kembali dalam keadaan beku di LibreOffice dan melaluiOpenODS - Ekspor ODS kini menulis page setup Tata letak halaman dalam paket yang disimpan membawa ukuran kertas, orientasi (portrait atau landscape), serta margin atas, bawah, kiri, dan kanan dari page setup worksheet, dengan fallback ke A4 portrait saat tidak ada page setup
Versi 2.89.6
Ditambahkan
- Impor ODS kini membaca freeze panes Membuka file
.odsmemulihkan kolom dan baris beku yang dicatat di pengaturan tampilan paket, sehingga sheet yang terbelah menjadi header beku terbuka kembali dalam keadaan beku - Impor ODS kini membaca rentang AutoFilter Rentang yang difilter yang disimpan di paket sebagai database range dibaca kembali ke sheet-nya, sehingga rentang AutoFilter yang ditulis oleh
SaveAsdibaca kembali olehOpenODS
Versi 2.89.5
Ditambahkan
- Impor ODS kini membaca conditional format Membuka file
.odsmembawa masuk aturan perbandingan nilai sel (lebih besar dari, lebih kecil dari, sama dengan, tidak sama dengan, lebih besar atau sama dengan, lebih kecil atau sama dengan, antara, dan di luar rentang), masing-masing diterapkan ke sel yang ditargetnya - Aturan interval mempertahankan kedua batasnya Aturan between atau not-between memulihkan kedua nilai ambangnya, sehingga batas bawah dan batas atas tetap utuh saat diimpor
- Aturan perbandingan tetap utuh dalam siklus simpan-buka Conditional format nilai sel yang ditulis ke
.odsterbuka kembali dengan operator, ambang, dan rentang targetnya tetap utuh, sehingga aturan yang disimpan olehSaveAsdibaca kembali olehOpenODS
Versi 2.89.4
Ditambahkan
- Impor ODS kini membaca data validation Membuka file
.odsmembawa masuk validasi isi sel: rentang numerik (between dan not-between), daftar drop-down, pemeriksaan panjang teks, dan perbandingan skalar, masing-masing diterapkan ke sel yang merujuknya - Detail validasi dipertahankan Flag `allow-empty-cell` dan error alert (gaya stop, warning, atau information beserta teks pesannya) terbawa ke model workbook
- Anggota daftar tetap utuh dalam siklus simpan-buka Daftar drop-down yang ditulis ke
.odsterbuka kembali dengan anggotanya tetap utuh, sehingga validasi yang disimpan olehSaveAsdibaca kembali olehOpenODS
Versi 2.89.3
Ditambahkan
- Ekspor ODS kini menulis elemen struktural Menyimpan ke
.odsmembawa named range, hyperlink sel, baris dan kolom tersembunyi, rentang AutoFilter, conditional format, dan data validation ke dalam paket - Named range dan hyperlink tetap utuh dalam siklus simpan-buka Nama yang scoped ke workbook mempertahankan alamatnya, tautan sel eksternal dan internal mempertahankan target, teks tampilan, dan tooltip-nya, serta baris dan kolom tersembunyi terbuka kembali tersembunyi
- AutoFilter, conditional format, dan validasi ikut ditulis Rentang yang difilter ditulis dengan tombol filternya, aturan conditional perbandingan nilai dan validasi data isi sel ditulis agar konsumen seperti LibreOffice mempertahankannya
Versi 2.89.2
Ditambahkan
- Impor ODS kini membaca style sel lengkap Membuka file
.odsmembawa masuk nama font, ukuran font, bold, italic, underline, dan strikethrough dari sel bergaya, bersama nilai cache dan format angka yang sudah didukung - Warna font, fill latar, dan border diimpor Warna font eksplisit dipetakan ke RGB tak tembus pandang, warna latar menjadi solid fill, dan keempat sisi sel (atas, bawah, kiri, kanan) membawa gaya garis dan warnanya
- Alignment diimpor Perataan teks horizontal dan vertikal serta opsi wrap-text diterapkan ke sel
- Warisan parent-style dihormati Style membaca nilainya melalui rantai parent-style ODS, sehingga child style menimpa atribut parent satu per satu sambil mewarisi apa pun yang dibiarkan tidak disetel
- Menutup loop tulis/baca Style sel yang ditulis oleh
SaveAske.odsdibaca kembali olehOpenODS, mempertahankan font, warna, fill, border, dan alignment
Versi 2.89.1
Ditambahkan
- Ekspor ODS kini menulis style sel lengkap Menyimpan ke
.odsmembawa nama font, ukuran font, bold, italic, underline, strikethrough, dan warna font ke dalam paket, sehingga sel bergaya mempertahankan tampilannya saat dibuka kembali - Fill latar dan border sel ikut ditulis Warna latar solid dan keempat sisi sel (atas, bawah, kiri, kanan) dikeluarkan dengan lebar, gaya garis, dan warnanya
- Alignment dan wrapping dipertahankan Perataan teks horizontal dan vertikal plus opsi wrap-text terbawa ke style sel ODS
- Style dapat dikombinasikan dengan format angka Satu style sel dapat memasangkan font, fill, dan border-nya dengan format angka, dan kombinasi style yang identik dibagikan agar paket tetap ringkas
Versi 2.89.0
Ditambahkan
- Ekspor OpenDocument Spreadsheet (`.ods`)
SaveAskini menerimaxlsxOpenDocumentSpreadsheetdan menulis paket ODF valid secara langsung, tanpa melalui perantara XLSX - Nilai sel bertipe ikut ditulis Teks, angka, boolean, dan tanggal dikeluarkan dengan tipe nilai ODF-nya sehingga nilainya mempertahankan maknanya saat dibuka kembali
- Format angka dipertahankan Format umum (jumlah desimal, pengelompokan ribuan, mata uang, persentase, scientific, dan tanggal ISO) ditulis sebagai data style ODF dan dirujuk oleh sel yang memakainya
- Struktur sheet terbawa Worksheet, lebar kolom, dan rentang sel gabungan ditulis ke dalam paket
- Tetap utuh saat bolak-balik melalui HotXLS Paket yang ditulis oleh
SaveAsdapat dibaca kembali denganOpenODS, mempertahankan nilai, format angka, lebar kolom, dan merge
Versi 2.88.249
Ditambahkan
- Fungsi interval kepercayaan kini dihitung di formula engine.
CONFIDENCE.NORMmenggunakan kuantil normal danCONFIDENCE.Tmenggunakan kuantil Student t untuk mengembalikan setengah lebar interval kepercayaan mean - Nama statistik modern tersedia.
PERCENTILE.INC,PERCENTILE.EXC,QUARTILE.INC,QUARTILE.EXC,RANK.AVG,COVARIANCE.P, danCOVARIANCE.Smengevaluasi persentil dan kuartil inklusif maupun eksklusif, peringkat dengan rata-rata untuk nilai seri, serta kovarians populasi dan sampel - Alias untuk bentuk lama.
MODE.SNGLdanRANK.EQdipetakan keMODEdanRANKyang sudah ada
Versi 2.88.248
Ditambahkan
- Fungsi distribusi binomial kini dihitung di formula engine.
BINOM.DISTmengevaluasi massa probabilitas dan distribusi kumulatif, menggunakan beta tak lengkap yang diregularisasi untuk bentuk kumulatif - Fungsi distribusi Poisson kini dihitung di formula engine.
POISSON.DISTmengevaluasi massa probabilitas dan distribusi kumulatif, menggunakan gamma tak lengkap atas untuk bentuk kumulatif - Evaluasi yang stabil. Kedua massa menggunakan bentuk faktorial log-gamma agar tetap akurat untuk hitungan besar, dan parameter yang tidak valid mengembalikan
#NUM!
Versi 2.88.247
Ditambahkan
- Fungsi distribusi beta kini dihitung di formula engine.
BETA.DISTdanBETA.INVmengevaluasi distribusi kumulatif, kepadatan probabilitas, dan invers pada interval opsional[A, B] - Fungsi distribusi Student t tersedia.
T.DIST,T.DIST.RT,T.DIST.2T,T.INV, danT.INV.2Tmencakup ekor kiri, ekor kanan, probabilitas dua ekor, dan inversnya - Fungsi distribusi F tersedia.
F.DIST,F.DIST.RT,F.INV, danF.INV.RTmengevaluasi distribusi kumulatif, ekor kanan, dan invers - Inti evaluasi bersama. Ketiga keluarga fungsi menggunakan beta tak lengkap yang diregularisasi dengan evaluasi pecahan kontinu, invers diselesaikan dengan bisection, dan parameter yang tidak valid mengembalikan
#NUM!
Versi 2.88.246
Ditambahkan
- Fungsi distribusi gamma dan chi-square kini dihitung di formula engine.
GAMMA.DIST,GAMMA.INV,CHISQ.DIST,CHISQ.DIST.RT,CHISQ.INV, danCHISQ.INV.RTmengevaluasi distribusi kumulatif, kepadatan probabilitas, ekor kanan, dan inversnya secara langsung melaluiCalculate - Log-gamma presisi tinggi tersedia.
GAMMALN.PRECISEmengembalikan logaritma natural dari fungsi gamma - Evaluasi yang akurat dan tangguh. Nilai kumulatif menggunakan deret dan ekspansi pecahan kontinu dari gamma tak lengkap yang diregularisasi, invers diselesaikan dengan bisection, dan parameter yang tidak valid mengembalikan
#NUM!
Versi 2.88.245
Ditambahkan
- Fungsi distribusi kontinu kini dihitung di formula engine.
EXPON.DIST,WEIBULL.DIST,LOGNORM.DIST, danLOGNORM.INVmengevaluasi distribusi kumulatif, kepadatan probabilitas, dan invers secara langsung melaluiCalculate - Evaluasi bentuk tertutup. Distribusi eksponensial dan Weibull menggunakan rumus analitiknya, sedangkan distribusi lognormal menggunakan kembali CDF normal dan inversnya; parameter yang tidak valid mengembalikan
#NUM!
Versi 2.88.244
Diperbaiki
- Distribusi normal invers kini akurat di bagian ekor.
NORMSINV,NORM.S.INV, danNORM.INVsebelumnya menggunakan logaritma basis-10 pada cabang ekor (probabilitas di bawah sekitar 0.024 atau di atas sekitar 0.976) padahal algoritme memerlukan logaritma natural; hasil kini benar di seluruh rentang probabilitas
Versi 2.88.243
Ditambahkan
- Fungsi distribusi normal dengan nama bertitik modern kini dihitung di formula engine.
NORM.DIST,NORM.INV,NORM.S.DIST, danNORM.S.INVmengevaluasi distribusi kumulatif, kepadatan probabilitas, dan inversnya secara langsung melaluiCalculate - Alias statistik bertitik.
STDEV.S,STDEV.P,VAR.S, danVAR.Pdikenali sebagai nama Excel 2010+ untuk simpangan baku dan varians sampel maupun populasi - Nama fungsi bertitik diuraikan dengan benar. Formula parser kini memperlakukan nama seperti
NORM.S.DISTsebagai satu fungsi, sehingga fungsi ini bekerja diCalculatedan dapat disimpan-buka ulang melalui prefiks OOXML_xlfn.
Versi 2.88.242
Ditambahkan
- Fungsi engineering bilangan kompleks kini dihitung di formula engine.
COMPLEXmembuat bilangan kompleks sebagai teks dan keluargaIM*membaca serta mengoperasikannya, semuanya dievaluasi langsung melaluiCalculate - Bagian dan aritmetika.
IMREAL,IMAGINARY,IMABS,IMARGUMENT, danIMCONJUGATEmengekspos komponennya, sementaraIMSUM,IMSUB,IMPRODUCT, danIMDIVmelakukan aritmetika kompleks - Fungsi transendental.
IMPOWER,IMSQRT,IMEXP, danIMLNdievaluasi melalui bentuk polar, dan sufiks imajiner dapat berupaiatauj
Versi 2.88.241
Ditambahkan
- Fungsi dynamic-array
XLOOKUPdanFILTERkini dihitung di formula engine. Keduanya dievaluasi langsung melaluiCalculate, menghadirkan lookup dan pemfilteran modern ke formula worksheet dan evaluasi ad-hoc XLOOKUPdengan mode pencocokan dan pencarian. Pencocokan tepat (default), wildcard, dan perkiraan berikutnya yang lebih kecil / lebih besar didukung, bersama pencarian dari awal ke akhir atau dari akhir ke awal serta hasil opsionalif_not_foundFILTERdengan hasil spill. Baris yang vektor include-nya TRUE dipertahankan dan di-spill ke rentang target melaluiSetArrayFormula, dengan nilai opsionalif_emptysaat tidak ada yang cocok
Versi 2.88.240
Ditambahkan
- Fungsi matematika
GCD,LCM,MROUND,QUOTIENT, danMULTINOMIALkini dihitung di formula engine. Fungsi-fungsi ini dievaluasi langsung melaluiCalculate, mencakup faktor persekutuan terbesar, kelipatan persekutuan terkecil, pembulatan ke kelipatan, pembagian bilangan bulat, dan koefisien multinomial - Konversi radix dan angka Romawi.
BASEmengodekan angka dalam radix apa pun dari 2 sampai 36 dengan zero-padding opsional,DECIMALmengurai string tersebut kembali menjadi angka, danARABICmengonversi angka Romawi ke nilainya
Versi 2.88.239
Ditambahkan
- Fungsi agregat
PRODUCTdanSUMSQkini dihitung di formula engine.PRODUCTmengalikan argumen numeriknya danSUMSQmenjumlahkan kuadratnya, keduanya dievaluasi langsung melaluiCalculate - Varians dan simpangan baku varian A.
VARA,VARPA,STDEVA, danSTDEVPAmenghitung sebaran sampel dan populasi sambil menghitung teks sebagai 0 dan TRUE sebagai 1, berbeda dari bentuk biasa yang mengabaikan non-angka
Versi 2.88.238
Ditambahkan
- Fungsi agregat statistik kini dihitung di formula engine.
VAR,VARP,STDEV,STDEVP,MODE,COUNTBLANK, danAVERAGEAdievaluasi langsung melaluiCalculate - Varians dan simpangan baku.
VARdanSTDEVmenggunakan rumus sampel sedangkanVARPdanSTDEVPmenggunakan rumus populasi, baik untuk rentang maupun argumen inline - Nilai yang paling sering muncul.
MODEmengembalikan angka yang paling sering muncul, dan melaporkan#N/Asaat tidak ada nilai yang berulang - Penghitungan kosong.
COUNTBLANKmenghitung sel kosong dalam suatu rentang, termasuk sel yang berisi hasil teks kosong - Rata-rata sadar teks.
AVERAGEAmerata-ratakan nilai sambil menghitung teks sebagai nol dan logika TRUE sebagai satu, sehingga berbeda dariAVERAGEyang mengabaikan teks
Versi 2.88.237
Ditambahkan
- Fungsi bitwise kini dihitung di formula engine.
BITAND,BITOR,BITXOR,BITLSHIFT, danBITRSHIFTdievaluasi langsung melaluiCalculate - Bitwise AND, OR, dan XOR.
BITAND,BITOR, danBITXORmenggabungkan dua bilangan bulat non-negatif bit demi bit - Pergeseran bit ke dua arah.
BITLSHIFTmenggeser bit suatu angka ke kiri danBITRSHIFTmenggesernya ke kanan; jumlah pergeseran negatif membalik arah - Batas yang kompatibel dengan Excel. Operand harus berupa bilangan bulat dari 0 sampai 2^48-1 dan jumlah pergeseran dibatasi hingga 53 posisi; nilai di luar batas ini melaporkan
#NUM! - Round-trip dengan prefiks OOXML. Saat disimpan ke XLSX, fungsi Excel 2013 ini ditulis dengan prefiks
_xlfn.dan dibuka kembali dengan bersih, sehingga tetap ditampilkan dan dihitung ulang dengan benar
Versi 2.88.236
Ditambahkan
- Fungsi engineering konversi basis kini dihitung di formula engine.
DEC2BIN,DEC2OCT,DEC2HEX,BIN2DEC,OCT2DEC,HEX2DEC,HEX2BIN,BIN2HEX,HEX2OCT,OCT2HEX,BIN2OCT, danOCT2BINdievaluasi langsung melaluiCalculate - Konversi antara biner, oktal, desimal, dan heksadesimal. Angka dikonversi ke dua arah di seluruh empat basis, termasuk pasangan lintas basis seperti heksadesimal ke biner
- Nilai bertanda melalui komplemen dua. Angka negatif direpresentasikan dalam bentuk komplemen dua standar 10 digit, sehingga nilai dapat round-trip dengan benar antar konversi
- Output lebar tetap opsional. Konversi ke basis teks menerima argumen places opsional yang mengisi hasil dengan nol di depan hingga lebar tetap
- Validasi rentang dan input. Nilai di luar rentang yang dapat direpresentasikan, atau teks yang berisi digit yang tidak valid untuk basis sumber, melaporkan
#NUM!
Versi 2.88.235
Ditambahkan
- Fungsi tanggal hari kerja kini dihitung di formula engine.
WORKDAYdanNETWORKDAYSdievaluasi langsung melaluiCalculate - Langkah tanggal sadar akhir pekan.
WORKDAYmengembalikan tanggal sejumlah hari kerja tertentu sebelum atau sesudah tanggal mulai, melewati Sabtu dan Minggu; hitungan negatif bergerak mundur dan hitungan nol mengembalikan tanggal mulai - Penghitungan hari kerja.
NETWORKDAYSmenghitung seluruh hari kerja antara dua tanggal, termasuk kedua ujungnya, dan mengembalikan hitungan negatif saat tanggal mulai lebih lambat daripada tanggal akhir - Daftar hari libur opsional. Kedua fungsi menerima argumen hari libur opsional, diberikan sebagai satu tanggal atau rentang sel, dan mengecualikan tanggal tersebut dari perhitungan hari kerja
Versi 2.88.234
Ditambahkan
- Fungsi tanggal dan waktu kini dihitung di formula engine.
EDATE,EOMONTH,DATEDIF,YEARFRAC,DAYS,WEEKNUM, danISOWEEKNUMdievaluasi langsung melaluiCalculate - Aritmetika bulan dengan penjepitan akhir bulan.
EDATEmenggeser tanggal sebanyak bilangan bulan utuh danEOMONTHmengembalikan hari terakhir dari bulan hasil pergeseran; keduanya menjepit ke bulan yang lebih pendek, misalnya tanggal 31 yang digeser ke Februari - Unit interval
DATEDIF. Unit hitungan penuh"Y","M", dan"D"serta unit sisa"YM","YD", dan"MD"didukung - Basis day-count
YEARFRAC. Kelima basis diimplementasikan: US 30/360, actual/actual, actual/360, actual/365, dan European 30/360 - Penomoran minggu.
WEEKNUMmendukung konvensi mulai-Minggu, mulai-Senin, dan ISO (return type 21), danISOWEEKNUMmengembalikan nomor minggu ISO 8601
Versi 2.88.233
Ditambahkan
- Fungsi database kini dihitung di formula engine.
DSUM,DCOUNT,DCOUNTA,DAVERAGE,DMIN,DMAX,DPRODUCT,DGET,DVAR,DVARP,DSTDEV, danDSTDEVPdievaluasi langsung melaluiCalculatedan dihitung ulang saat workbook dibuka kembali - Pencocokan tabel kriteria standar. Kondisi yang ditempatkan di bawah header field digabungkan sebagai AND di dalam satu baris dan OR antar baris, mendukung operator perbandingan seperti
>,<, dan>=, serta mengizinkan pencocokan teks wildcard*/?; sel kriteria kosong tidak menambahkan batasan - Pemilih field yang fleksibel. Field yang diagregasi dapat diberikan sebagai teks header kolom, indeks kolom berbasis 1, atau referensi ke sel header
- Lookup satu record
DGET.DGETmengembalikan nilai field dari record yang cocok, termasuk teks, dan melaporkan#NUM!saat beberapa record cocok atau#VALUE!saat tidak ada yang cocok
Versi 2.88.232
Ditambahkan
OpenODSkini mengimpor proteksi sheet ODS. Tabel ODS dengantable:protected="true"kini dibuka sebagai worksheet terproteksi menggunakan status proteksi sheet tanpa kata sandi yang sudah ada; kunci proteksi ODS tidak diperlakukan sebagai hash kata sandi lama XLSX
Versi 2.88.231
Ditambahkan
OpenODSkini mengimpor named range ODS. Entritable:named-rangedengantable:cell-range-addresskini mengisiDefinedNamesworkbook, mengonversi referensi sheet/sel ODS seperti$Sheet.$A$1:$Sheet.$B$2menjadi formula defined-name XLSX
Versi 2.88.230
Ditambahkan
OpenODSkini mengimpor gaya proteksi sel ODS. Gaya table-cell yang menggunakanstyle:cell-protectkini memetakannone,formula-hidden,protected, danhidden-and-protectedke status selLockeddanFormulaHiddenyang diimpor, termasuk nilai yang diwariskan melaluistyle:parent-style-name
Versi 2.88.229
Ditambahkan
OpenODSkini mengimpor formula ODS dasar. Sel formula yang menggunakanof:=atauoooc:=kini mempertahankan nilai skalar cache-nya dan mengimpor formula XLSX yang dinormalisasi dengan referensi lokal dalam kurung siku seperti[.A1:.B1]serta pemisah argumen titik koma yang dikonversi ke sintaks Excel
Versi 2.88.228
Ditambahkan
OpenODSkini menyelesaikan gaya baris dan kolom ODS yang diwariskan. Gaya table-row dan table-column yang menggunakanstyle:parent-style-namekini mewarisi tinggi baris, lebar kolom, dan pengaturan visibilitas tersembunyi dari induk saat paket ODS mereferensikan gaya anak daricontent.xml
Versi 2.88.227
Ditambahkan
OpenODSkini menyelesaikan gaya table-cell ODS yang diwariskan. Gaya table-cell yang menggunakanstyle:parent-style-namekini mewarisi pemetaan data-style induk selama impor ODS, sehingga gaya anak mempertahankan nilaiNumberFormatXLSX yang diimpor meskipun data style dideklarasikan pada gaya induk
Versi 2.88.226
Ditambahkan
OpenODSkini memuat terlebih dahulu gaya baris dan kolom ODS yang disimpan distyles.xml. Properti gaya table-row dan table-column daristyles.xmlkini mengalir ke impor baris/kolom tersembunyi dan tinggi baris/lebar kolom saatcontent.xmlmereferensikan nama gaya tersebut
Versi 2.88.225
Ditambahkan
OpenODSkini menggunakan data style ODS yang disimpan distyles.xml. Gaya table-cell bernama dan data style angka/tanggal/waktu daristyles.xmlkini ikut dalam resolusiNumberFormatXLSX yang diimpor, sementara gaya otomatiscontent.xmltetap dapat menimpanya
Versi 2.88.224
Ditambahkan
OpenODSkini mengimpor format angka pecahan ODS. Komponen ODSnumber:fractionkini dipetakan ke format pecahan XLSX seperti0 ?/??, mempertahankan pengaturan tampilan pecahan selama impor
Versi 2.88.223
Ditambahkan
OpenODSkini mengimpor format angka ilmiah ODS. Komponen ODSnumber:scientific-numberkini dipetakan ke format angka XLSX seperti0.000E+00, mempertahankan pengaturan tampilan notasi ilmiah selama impor
Versi 2.88.222
Ditambahkan
OpenODSkini mempertahankan literalnumber:textdalam data style numerik ODS. Gaya angka, persentase, dan mata uang yang menempatkannumber:textsebelum atau sesudahnumber:numberkini mengimpor literal tersebut ke format angka XLSX, menjaga label dan sufiks satuan sepertikg
Versi 2.88.221
Diperbaiki
OpenODSkini mengimpor durasi waktu ODS negatif. Nilaioffice:time-valueseperti-PT02H03M04Skini diimpor sebagai nilai serial waktu negatif, bukan dilewati
Versi 2.88.220
Diperbaiki
OpenODSkini menyelesaikan gaya sel default per kolom berulang. Sel ODS berulang yang melintasi batas default-style kolom kini menerapkan format angka kolom atau tabel default dari setiap kolom target, bukan menggunakan kembali format kolom berulang pertama
Versi 2.88.219
Ditambahkan
OpenODSkini mempertahankan detik pecahan dalam nilai tanggal ODS. Timestampoffice:date-valueseperti2026-06-04T12:30:00.250kini mempertahankan komponen milidetiknya, bukan dipotong menjadi detik utuh
Versi 2.88.218
Ditambahkan
OpenODSkini mengimpor visibilitas sheet ODS. Tabel ODS dengan nilaitable:visibilitytersembunyi seperticollapsekini diimpor sebagai worksheet XLSX tersembunyi, bukan selalu menjadi tab terlihat
Versi 2.88.217
Ditambahkan
OpenODSkini menerapkan gaya sel default ODS.table:default-cell-style-namepada tabel, kolom, dan baris kini ikut dalam resolusi format angka untuk sel tanpatable:style-namelangsung, menggunakan prioritas sel, baris, kolom, lalu tabel
Versi 2.88.216
Ditambahkan
OpenODSkini mengimpor komponen gaya tanggal dan waktu ODS. Data style tanggal dan waktu kini membaca node umumnumber:year,number:month,number:day,number:hours,number:minutes,number:seconds,number:am-pm, dannumber:textsehingga sel yang diimpor mempertahankan urutan komponen dan pemisah sepertidd/mm/yyyyatauhh:mm
Versi 2.88.215
Ditambahkan
OpenODSkini mengimpor format angka digit minimum ODS. Data style angka, persentase, dan mata uang dengannumber:min-integer-digitsdannumber:min-decimal-placeskini dipetakan ke stringNumberFormatXLSX dengan nol di depan dan placeholder desimal belakang opsional
Versi 2.88.214
Ditambahkan
OpenODSkini mengimpor format angka berkelompok ODS. Data style angka, persentase, dan mata uang dengannumber:grouping="true"kini dipetakan ke stringNumberFormatXLSX dengan pemisah pengelompokan gaya#,##0
Versi 2.88.213
Ditambahkan
OpenODSkini mempertahankan simbol mata uang ODS dalam format angka yang diimpor. Data style mata uang dengannumber:currency-symbolkini menggunakan simbol tersebut sebagai prefiksNumberFormatXLSX, sehingga format sepertiEUR#,##0.00tidak lagi runtuh menjadi$#,##0.00
Versi 2.88.212
Ditambahkan
OpenODSkini menghormati pengaturan tempat desimal ODS dalam format angka dasar. Data style angka, persentase, dan mata uang dengannumber:decimal-placeskini dipetakan ke stringNumberFormatXLSX yang sesuai seperti0,0.0%, atau$#,##0
Versi 2.88.211
Ditambahkan
OpenODSkini mengimpor nilai skalar cache ODS tanpa tipe. Sel tanpaoffice:value-typekini menggunakan atributoffice:value,office:boolean-value,office:date-value,office:time-value, danoffice:string-valueyang tersedia sebelum fallback ke konten teks
Versi 2.88.210
Ditambahkan
OpenODSkini mempertahankan batas paragraf teks ODS. Beberapa paragraftext:pdiimpor dengan line break, sementara kontrol whitespacetext:s,text:tab, dantext:line-breaktetap berada dalam teks sel, bukan diratakan menjadi satu
Versi 2.88.209
Ditambahkan
OpenODSkini mengimpor dimensi baris dan kolom ODS. Gaya ODS table-column dan table-row denganstyle:column-width/style:row-heightdipetakan keColWidth/RowHeight, termasuk baris dan kolom berulang
Versi 2.88.208
Ditambahkan
- Kontrol chrome dan geometri jendela workbook XLSX.
TXLSXWorkbookkini mengeksposMinimized,WindowHidden,ShowHorizontalScroll,ShowVerticalScroll,XWindow,YWindow,WindowWidth, danWindowHeightuntuk facade XLSX.SaveAsmenulis atribut<workbookView>yang sesuai,Openmelakukan round-trip, dan nilai geometri dibatasi ke rentang 0..65535 yang kompatibel dengan OOXML
Versi 2.88.207
Ditambahkan
- Kontrol tampilan workbook XLSX.
TXLSXWorkbookkini mengeksposShowSheetTabs,TabRatio,FirstSheet, danAutoFilterDateGroupingsehingga pemanggil dapat mengontrol bilah tab workbook dan pengelompokan tanggal AutoFilter melalui facade XLSX.SaveAsmenulis atribut<workbookView>yang sesuai,Openmelakukan round-trip,TabRatiodibatasi ke 0..1000, danFirstSheetdibatasi ke indeks sheet berbasis 0 yang ada
Versi 2.88.206
Ditambahkan
- Helper AutoFit XLSX berbatas.
TXLSXWorksheet.AutoFitColumn,AutoFitColumns,AutoFitRow,AutoFitRows, serta wrapperTXLSXRangeAutoFitColumns/AutoFitRowskini menerima batas lebar/tinggi minimum dan maksimum opsional, sehingga pemanggil dapat menyesuaikan konten sambil menjaga tata letak laporan tetap dalam batas desain
Diperbaiki
- Nama font rich-text HTML XLSX. Ekspor HTML kini menghasilkan CSS
font-familyrich-text dengan nama dalam tanda kutip ganda sebelum escaping HTML, sesuai output"..."yang terdokumentasi untuk run bergaya
Versi 2.88.205
Ditambahkan
- Bentuk persegi panjang, oval, dan garis (XLS). API drawing .xls menambahkan
Shapes.AddRectangle,Shapes.AddOval, danShapes.AddLine(ditambahAddAutoShapeumum), sehingga autoshape bertipe dapat dibuat dan ditambatkan ke rentang sel tanpa membangun record OfficeArt secara manual. Masing-masing mengembalikan shape yang formatFilldanLine-nya dapat diatur; sebelumnya hanya gambar, kotak teks, dan komentar yang dapat ditambahkan
Versi 2.88.204
Ditambahkan
- Chart scatter, bubble, dan radar (XLSX).
AddChartkini menerimaxlsxChartScatter(XY scatter),xlsxChartBubble(dengan rentang ukuran bubble per seri), danxlsxChartRadar, bersama tipe column / bar / line / pie / area / doughnut yang sudah ada. Seri scatter dan bubble memplot rentang kategori sebagai X dan rentang nilai sebagai Y; bubble menambahkanBubbleSizeRange
Versi 2.88.203
Ditambahkan
- Aturan data-validation bertipe dengan prompt dan alert (XLS). Engine .xls klasik menambahkan
AddWholeNumberValidation,AddDecimalValidation,AddDateValidation,AddTimeValidation,AddTextLengthValidation, danAddCustomValidation(sebelumnya hanya validasi daftar yang diekspos). Setiap metode mengembalikan aturan, yang dapat membawa prompt input, alert kesalahan dengan ikon stop / warning / information, dan toggle allow-blank melaluiSetPrompt/SetError/AllowBlank
Versi 2.88.202
Ditambahkan
- Prompt input dan alert kesalahan untuk data validation (XLSX). Aturan data-validation kini dapat membawa kotak prompt input (judul dan pesan yang ditampilkan saat sel dipilih) dan kotak alert kesalahan (judul, pesan, serta ikon stop / warning / information yang ditampilkan pada entri tidak valid), plus kontrol panah dropdown daftar. Atur melalui
SetPrompt,SetError, dan properti baruPromptTitle/Prompt/ErrorTitle/ErrorMessage/ErrorStyle/ShowDropDown; sebelumnya hanya toggle show-message yang tersedia. Semuanya round-trip saat dimuat
Versi 2.88.201
Ditambahkan
- Lebih banyak tipe aturan conditional-format (XLSX). Engine XLSX menambahkan aturan teks (contains, does not contain, begins with, ends with), top/bottom-N (dengan persentase opsional), above- dan below-average, nilai duplikat dan unik, serta blanks / non-blanks / errors / non-errors — masing-masing melalui metode
AddCondFormat*khusus dan masing-masing dapat membawa highlight melaluiStyle. Aturan ini juga round-trip saat dimuat
Versi 2.88.200
Ditambahkan
- Conditional formatting berbasis formula (XLSX). Aturan conditional-format baru menyorot sel dengan formula arbitrer melalui
AddCondFormatExpression: formula dievaluasi per sel dan sel yang bernilai true memakai highlight aturan tersebut
Diubah
- Conditional format kini menyorot sel di .xlsx. Aturan conditional-format nilai sel dan formula kini membawa differential style — warna fill, warna font, dan bold / italic / underline — yang ditulis ke tabel style workbook, sehingga Excel mewarnai sel yang cocok. Sebelumnya conditional format XLSX disimpan tanpa highlight apa pun
Versi 2.88.199
Ditambahkan
- Fungsi formula TEXTJOIN dan CONCAT. Kalkulator formula bawaan kini mengevaluasi
TEXTJOIN(menggabungkan nilai teks dengan delimiter, opsional melewati sel kosong) danCONCAT(menggabungkan nilai teks tanpa delimiter), keduanya memperluas argumen rentang sel demi sel — berbeda dariCONCATENATElama. File.xlsxyang disimpan menulis fungsi Excel 2016 ini dengan prefiks_xlfn.sehingga Excel membukanya sebagai fungsi nyata, dan saat dibuka ulang nama polosnya ditampilkan
Versi 2.88.198
Ditambahkan
- Fungsi formula SUMIFS, COUNTIFS, AVERAGEIFS, MAXIFS, dan MINIFS. Kalkulator formula bawaan kini mengevaluasi agregasi multi-kondisi ini, yang menjumlahkan, menghitung, merata-ratakan, atau mengambil nilai terbesar maupun terkecil dari sel yang memenuhi setiap kriteria di satu atau beberapa rentang paralel; kriteria menerima operator perbandingan seperti
">=30"dan wildcard teks. AVERAGEIFS tanpa sel yang cocok mengembalikan #DIV/0! dan MAXIFS/MINIFS mengembalikan 0, seperti di Excel, serta MAXIFS dan MINIFS yang lebih baru ditulis ke.xlsxdengan prefiks_xlfn.milik Excel
Versi 2.88.197
Ditambahkan
- Fungsi formula IFS, SWITCH, dan IFNA. Kalkulator formula bawaan kini mengevaluasi fungsi logika modern
IFS(nilai dari kondisi pertama yang true),SWITCH(mencocokkan ekspresi dengan daftar kasus, dengan default opsional), danIFNA(mengganti nilai hanya saat hasilnya adalah error #N/A). Karena fungsi ini diperkenalkan setelah set fungsi .xls asli, penyimpanan ke.xlsxkini menulisnya dengan prefiks_xlfn.milik Excel sehingga Excel membukanya sebagai fungsi nyata, dan membuka ulang file seperti itu menampilkan nama fungsi polos lagi
Versi 2.88.196
Ditambahkan
- Fungsi formula INDEX dan OFFSET. Kalkulator formula bawaan kini mengevaluasi
INDEX(membaca nilai berdasarkan posisi baris dan kolomnya di dalam rentang) danOFFSET(membaca nilai sejumlah baris dan kolom dari sel anchor), keduanya melaluiCalculate. Lookup dua arahINDEX/MATCHdan referensi berbasisOFFSETkini dihitung dengan benar, dan posisi di luar rentang mengembalikan error #REF! agar sesuai dengan Excel
Versi 2.88.195
Diperbaiki
- HTML yang diekspor mempertahankan border dan shading baris header. Saat sel memakai font bernama, ekspor XLSX-ke-HTML menulis nama font dalam tanda kutip ganda di dalam atribut style bertanda kutip ganda, yang memotong style sehingga sel kehilangan border, fill, dan ukurannya. Nama font kini memakai tanda kutip tunggal, sehingga baris header bergaya diekspor dengan garis grid utuh — termasuk garis yang menutup bagian atas tabel — bersama warna latarnya
- Ekspor RTF kini sesuai dengan tata letak HTML dan Excel. Ekspor XLSX-ke-RTF menambahkan border sel, spanning sel gabungan, dan shading fill solid, serta kini menskalakan lebar kolom agar muat pada halaman cetak sehingga kolom auto-fit yang lebar tidak lagi mendorong tabel keluar halaman. Sebelumnya tabel RTF tidak memiliki border, menghilangkan judul gabungan, dan dapat jauh melebihi lebar halaman
Versi 2.88.194
Diperbaiki
- Menyimpan ulang workbook .xls yang berisi kotak teks tidak lagi merusaknya. Membuka file XLS yang memiliki kotak teks lalu menyimpannya lagi sebelumnya menggandakan record drawing internal, menghasilkan workbook yang membuat Excel crash saat file dibuka kembali. Data drawing kotak teks kini round-trip dengan benar, sehingga workbook yang disimpan ulang terbuka normal
Versi 2.88.193
Diperbaiki
- File .xlsx yang dilindungi kata sandi kini terbuka di Excel. Menyimpan workbook dengan kata sandi melalui
SaveAsEncryptedsebelumnya menghasilkan paket ECMA-376 Standard Encryption yang ciphertext AES-nya dibuat secara keliru, sehingga Excel menolak file meskipun kata sandinya benar. Enkripsi AES-128 kini menghasilkan output yang sesuai standar, dan workbook terenkripsi terbuka di Excel 2007 dan yang lebih baru dengan kata sandi yang digunakan saat menyimpan
Diubah
- AES berakselerasi perangkat keras untuk enkripsi XLSX. Cipher AES-128 di balik XLSX Standard Encryption kini menggunakan instruksi CPU AES-NI pada Windows 32-bit maupun 64-bit saat prosesor mendukungnya, mempercepat penyimpanan yang dilindungi kata sandi. Prosesor tanpa AES-NI otomatis fallback ke implementasi perangkat lunak portabel, sehingga output identik di setiap mesin
Versi 2.88.192
Ditambahkan
- Formula array bertahan saat XLSX disimpan dan dibuka ulang. Formula array multi-sel (CSE) yang diatur dengan
SetArrayFormulakini disimpan ke dan dimuat ulang dari file.xlsxsebagai formula array nyata, sehingga menyimpan workbook lalu membukanya kembali mempertahankan rentang spill tertambat dan setiap sel tetap mengevaluasi elemennya sendiri dari hasil matriks. Sebelumnya formula array yang disimpan kehilangan rentang spill saat file dibuka ulang
Versi 2.88.191
Ditambahkan
- Formula array spill melintasi rentang sel (XLSX). Rentang engine XLSX memperoleh
SetArrayFormulayang sama seperti engine XLS: formula array multi-sel (CSE) seperti{=MMULT(A1:B2;D1:E2)}yang diatur pada blok sel men-spill hasil matriksnya sehingga setiap sel mengevaluasi elemennya sendiri. Ini melengkapi dukungan formula array multi-sel di engine XLS dan XLSX
Versi 2.88.190
Ditambahkan
- Formula array spill melintasi rentang sel (XLS). Metode
SetArrayFormulabaru pada rentang menetapkan formula array multi-sel (CSE) seperti{=MMULT(A1:B2;D1:E2)}pada blok sel, dan kalkulator formula kini men-spill hasil matriks ke blok tersebut sehingga setiap sel membaca elemennya sendiri. Sebelumnya sel yang membawa formula array dievaluasi sebagai tidak didukung. Matriks dihitung satu kali per recalculation dan dibagi ke seluruh rentang
Versi 2.88.189
Ditambahkan
- Fungsi formula MINVERSE dan MMULT. Kalkulator formula bawaan kini mengevaluasi
MINVERSE(invers matriks) danMMULT(perkalian matriks). Dipanggil melaluiCalculate, masing-masing mengembalikan matriks hasil sebagai array dua dimensi yang dapat dibaca elemen demi elemen.MINVERSEmemerlukan rentang persegi dan mengembalikan error #NUM! untuk matriks singular;MMULTmemerlukan dimensi dalam yang sesuai (kolom rentang pertama sama dengan baris rentang kedua) dan jika tidak mengembalikan error #VALUE!
Versi 2.88.188
Ditambahkan
- Fungsi formula MDETERM. Kalkulator formula bawaan kini mengevaluasi
MDETERM, mengembalikan determinan matriks dari rentang persegi melaluiCalculate. Rentang non-persegi, atau rentang yang berisi sel kosong maupun non-numerik, mengembalikan error #VALUE! agar sesuai dengan Excel
Versi 2.88.187
Ditambahkan
- Fungsi formula statistik. Kalkulator formula bawaan kini mengevaluasi
MEDIAN,LARGE,SMALL, danRANK, sehingga formula yang merangkum rentang angka dihitung ulang dengan benar melaluiCalculate.MEDIANmenerima campuran angka inline dan rentang;LARGEdanSMALLmengembalikan nilai terbesar ke-k dan terkecil ke-k;RANKmelaporkan posisi angka, memeringkat secara menurun secara default atau menaik saat argumen urutan bukan nol diberikan
Versi 2.88.186
Ditambahkan
- Fungsi formula lookup. Kalkulator formula bawaan kini mengevaluasi
CHOOSEdanMATCH, sehingga formula yang memilih argumen berdasarkan indeks atau menemukan posisi nilai dalam baris atau kolom dihitung ulang dengan benar melaluiCalculate.MATCHmendukung ketiga tipe pencocokan — tepat (0), nilai terbesar yang tidak lebih besar dari lookup dalam rentang menaik (1, default), dan nilai terkecil yang tidak kurang dari lookup dalam rentang menurun (-1) — serta membandingkan teks tanpa membedakan huruf besar-kecil
Versi 2.88.185
Ditambahkan
- Fungsi formula finansial. Kalkulator formula bawaan kini mengevaluasi
PV,FV,PMT,NPER, danRATE, sehingga formula present-value, future-value, payment, term, dan interest-rate dihitung ulang dengan benar melaluiCalculate. Argumen future-value/present-value dan payment-timing (type) opsional dihormati, danRATEdiselesaikan secara iteratif
Diperbaiki
- Titik desimal dalam string formula. Memperbaiki masalah ketika string formula yang diberikan ke
Calculatedan berisi titik desimal (misalnya=PV(0.05;10;100)) dapat gagal diurai; literal numerik dengan bagian pecahan kini dievaluasi dengan benar
Versi 2.88.184
Ditambahkan
- Fungsi formula informasi. Kalkulator formula bawaan kini mengevaluasi
ISERROR,ISERR,ISNA,ISNUMBER,ISLOGICAL,ISNONTEXT, danISREF, sehingga formula pengujian error dan pengujian tipe dihitung ulang dengan benar melaluiCalculate.ISERRmengecualikan #N/A sedangkanISNAhanya mencocokkan #N/A
Versi 2.88.183
Ditambahkan
- Fungsi formula teks. Kalkulator formula bawaan kini mengevaluasi
FIND,SEARCH,SUBSTITUTE,REPLACE,TRIM,PROPER,CLEAN,CHAR,CODE,T,EXACT, danREPT, sehingga worksheet yang menggunakan fungsi teks ini dihitung ulang dengan benar melaluiCalculate, bukan mengembalikan hasil fungsi tidak didukung.FINDpeka huruf besar-kecil sedangkanSEARCHtidak
Diperbaiki
- Fungsi CHAR dikenali. Memperbaiki masalah lookup nama ketika fungsi
CHARpernah didaftarkan dengan kapitalisasi yang salah dan tidak dapat diselesaikan dalam formula
Versi 2.88.182
Diubah
- Fungsi formula IFERROR. Formula engine kini mengenali dan mengevaluasi
IFERROR(value, value_if_error), mengembalikan fallback saat argumen pertama mengevaluasi error Excel apa pun (#NULL!, #DIV/0!, #VALUE!, #REF!, #NAME?, #NUM!, #N/A) dan nilai itu sendiri jika tidak. Fungsi ini round-trip di kedua engine — dikodekan sebagai token fungsi di .xls (BIFF8) dan sebagai string formula<f>di .xlsx (OOXML) — sehingga workbook terbuka dan dihitung ulang dengan benar di Excel
Diperbaiki
- NA() kini mengembalikan #N/A. Fungsi
NA()dievaluasi menjadi nilai error #N/A, bukan dilaporkan sebagai tidak didukung, sehingga formula penanganan error yang dibangun di sekitarnya (misalnyaIFERROR(NA(), 0)) bekerja seperti yang diharapkan
Versi 2.88.181
Ditambahkan
- Kotak teks (XLSX).
TXLSXWorksheet.AddTextBoxbaru menambahkan kotak teks mandiri yang ditambatkan ke persegi panjang sel, dipancarkan ke drawing worksheet sebagai shape dengan body teks. Ini menyelaraskan engine XLSX dengan dukungan kotak teks yang sudah ada di engine XLS
Versi 2.88.180
Ditambahkan
- Konstanta ukuran kertas bernama (XLSX). Engine XLSX menambahkan
xlsxPaperLetter,xlsxPaperA4,xlsxPaperA3dan konstantaxlsxPaper*lainnya untuk propertiTXLSXWorksheet.PaperSize, mencerminkan konstantaxlPaper*milik engine XLS sehingga ukuran kertas dapat diatur berdasarkan nama, bukan kode kertas Excel mentah
Versi 2.88.179
Ditambahkan
- Properti dokumen XLS. Engine XLS menambahkan properti
IXLSWorkBookTitle,Subject,Author,Keywords,Comments,Company, danManager, yang ditulis ke stream .xls OLE SummaryInformation / DocumentSummaryInformation (sebagai Unicode) saat disimpan, sehingga panel File > Info Excel menampilkannya. Ini menyelaraskan engine XLS dengan set properti dokumen yang sudah ada di engine XLSX
Versi 2.88.178
Ditambahkan
- Chart area dan doughnut (XLSX).
TXLSXChartTypemenambahkanxlsxChartAreadanxlsxChartDoughnutbersama tipe column, bar, line, dan pie yang sudah ada, sehinggaTXLSXWorksheet.AddChartdapat memancarkan chart area dan doughnut. Engine chart XLS (BIFF8) tetap mempertahankan set column / bar / line / pie
Versi 2.88.177
Ditambahkan
- Paritas API operasi rentang lintas engine. Engine XLSX menambahkan metode rentang bergaya Excel
TXLSXRange.CopyTo,MoveTo,InsertRows,DeleteRows,InsertCols, danDeleteCols; engine XLS menambahkan metode worksheet berbasis koordinatIXLSWorksheet.CopyRange,MoveRange,InsertRows,DeleteRows,InsertCols, danDeleteCols. Kedua engine kini mengekspos copy/move rentang serta insert/delete seluruh baris/kolom dengan nama yang selaras
Versi 2.88.176
Ditambahkan
- Gaya sel bawaan.
TXLSXRange.ApplyBuiltinStyle(XLSX) danIXLSRange.ApplyBuiltinStyle(XLS) baru mereproduksi tampilan gaya sel bernama standar Excel — Good, Bad, Neutral, Calculation, Check Cell, Explanatory Text, Input, Linked Cell, Note, Output, Warning Text, Heading 1-4, Title, Total, dan Accent 1-6 — dalam satu panggilan dengan menerapkan fill dan font yang sesuai
Versi 2.88.175
Ditambahkan
- Pengurutan rentang.
TXLSXRange.Sort/TXLSXWorksheet.SortRange(XLSX) danIXLSWorksheet.SortRange(XLS) baru mengurutkan ulang baris dari sebuah persegi panjang berdasarkan satu atau beberapa kolom kunci, menaik atau menurun. Seluruh baris bergerak bersama membawa nilai dan pemformatan sel; kunci yang sama mempertahankan urutan aslinya (stable sort), dan sel kosong selalu diurutkan terakhir
Versi 2.88.174
Ditambahkan
OpenCSVmengimpor file CSV dan TSV ke worksheet. OverloadTXLSWorkbook.OpenCSVdanTXLSXWorkbook.OpenCSVbaru membaca teks ber-delimiter dengan deteksi pemisah otomatis (koma, titik koma, tab, atau pipe), deteksi encoding berbasis BOM (UTF-8 dan UTF-16), serta penanganan kutipan RFC 4180.Openkini merutekan file.csvdan.tsvke importer secara otomatis
Diubah
- Deteksi tipe nilai opsional. Field numerik, tanggal ISO-8601, dan Boolean dipromosikan ke nilai sel bertipe secara default; deteksi dapat dimatikan agar setiap field tetap sebagai teks, mempertahankan nol di depan, string digit panjang, dan teks berawalan
=
Versi 2.88.173
Diubah
OpenODSkini mengimpor visibilitas baris dan kolom tersembunyi. Gaya ODStable-rowdantable-columndengan nilaitable:visibilityseperticollapseataufilterkini dipetakan keRowHidden/ColHidden, termasuk baris dan kolom berulang
Versi 2.88.172
Diubah
- Ekspor HTML XLSX kini mempertahankan perataan vertikal.
TXLSXWorkbook.SaveAsHTMLdanTXLSXRange.SaveAsHTMLmenghasilkan aturan CSSvertical-alignuntuk perataan sel top, center, justified, dan distributed saatIncludeStylesdiaktifkan
Versi 2.88.171
Diubah
- Ekspor HTML XLSX kini melewati baris dan kolom tersembunyi.
TXLSXWorkbook.SaveAsHTMLdanTXLSXRange.SaveAsHTMLmenghilangkan baris yang ditandai olehRowHidden, kolom yang ditandai olehColHidden, dan kolom eksplisit berlebar nol dari tabel yang dihasilkan serta<colgroup>
Versi 2.88.170
Diubah
- Ekspor HTML XLSX kini mempertahankan border sel. Saat style disertakan,
TXLSXWorkbook.SaveAsHTMLdanTXLSXRange.SaveAsHTMLmenghasilkan sisi border sel sebagai style CSSborder-left,border-right,border-top, danborder-bottom
Versi 2.88.169
Diubah
- Ekspor HTML XLSX kini mempertahankan run rich-text. Saat style disertakan,
TXLSXWorkbook.SaveAsHTMLdanTXLSXRange.SaveAsHTMLmenghasilkan runTXLSXRichTextsebagai elemen<span>yang di-escape dengan style font, warna, emphasis, dan underline inline
Versi 2.88.168
Diubah
- Ekspor HTML XLSX kini mempertahankan ukuran baris dan kolom eksplisit. Saat style disertakan,
TXLSXWorkbook.SaveAsHTMLdanTXLSXRange.SaveAsHTMLmenulis nilaiColWidtheksplisit melalui<colgroup>dan nilaiRowHeighteksplisit sebagai style tinggi<tr>
Versi 2.88.167
Diubah
- Ekspor HTML XLSX kini membawa komentar sel sebagai tooltip.
TXLSXWorkbook.SaveAsHTMLdanTXLSXRange.SaveAsHTMLmenulis komentar XLSX ke atributtitle<td>yang di-escape, dan ekspor level workbook memperluas batas tabelnya agar mencakup anchor yang hanya berisi komentar
Versi 2.88.166
Diubah
- Ekspor HTML XLSX kini mempertahankan hyperlink dan gambar tertambat.
TXLSXWorkbook.SaveAsHTMLdanTXLSXRange.SaveAsHTMLmembungkus sel bertautan dalam anchor<a>yang di-escape dan menghasilkan gambar tertambat sebagai URI gambardata:inline. Ekspor level workbook juga memperluas batas tabelnya agar mencakup anchor hyperlink dan gambar di luar sel yang terisi
Versi 2.88.165
Ditambahkan
TXLSXTablekini mempertahankan visibilitas total-row. Properti baruTotalsRowShownmenulis dan membaca flag OOXMLtotalsRowShownsehingga tabel XLSX dapat menjaga total row tetap aktif di seluruh siklus SaveAs/Open
Versi 2.88.164
Ditambahkan
TXLSXWorksheetkini memiliki helper data-validation bertipe.AddWholeNumberValidation,AddDecimalValidation,AddDateValidation,AddTimeValidation,AddTextLengthValidation, danAddCustomValidationmenambahkan aturan XLSX umum tanpa harus meneruskan nilaiTXLSXDataValidationTypesecara manual
Versi 2.88.163
Diubah
OpenODSkini mengimpor hyperlink teks ODS. Tautan ODStext:adenganxlink:hrefkini membuat entriTXLSXHyperlinks, mempertahankan teks anchor dalam nilai sel yang diimpor, dan memetakan target fragmen seperti#Sheet.A1ke tautan workbook internal
Versi 2.88.162
Diubah
OpenODSkini mengimpor komentar sel dasar. Sel ODS denganoffice:annotationkini membuat entriTXLSXCommentsdengan teks komentar dandc:creatorsebagai author, sambil menjaga teks annotation keluar dari nilai sel
Versi 2.88.161
Diubah
- Demo
ApiTourkini mencakup helper workflow XLSX terkini. Sampel Delphi dan C++BuilderApiTourkini mendemonstrasikanWriteRows,ForEachRow,PreviewAutoFilterRows,AutoFilterRowVisible,TXLSXHtmlExportOptions, danOnUserFunctionExbersama alur pembuatan workbook, ekspor, dan inspeksi setelah dibuka ulang
Versi 2.88.160
Ditambahkan
OnUserFunctionExmenambahkan callback formula kustom yang sadar konteks.TXLSWorkbook,IXLSWorkbook, danTXLSXWorkbookkini dapat menerimaTXLSUserFunctionContextdengan indeks sheet, baris, dan kolom saatCalculatemendelegasikan fungsi worksheet kustom atau tidak didukung ke kode aplikasi
Versi 2.88.159
Ditambahkan
TXLSXHtmlExportOptionsmenambahkan ekspor HTML XLSX yang dapat dikonfigurasi. Overload workbook dan rentangSaveAsHTMLdapat mengganti judul dokumen, menerapkan kelas CSS tabel, menghilangkan style inline/default, menekan BOM UTF-8, atau menghasilkan fragmen tabel tanpa dokumen HTML di sekelilingnya
Versi 2.88.158
Ditambahkan
TXLSXWorksheet.AutoFilterRowVisibledanPreviewAutoFilterRowsmenambahkan evaluasi pratinjau AutoFilter. Aplikasi dapat menguji apakah sebuah baris cocok dengan kriteria AutoFilter XLSX yang tersimpan di worksheet atau menelusuri baris data terfilter dengan callback visibilitas, tanpa mengubah flag row hidden
Versi 2.88.157
Ditambahkan
TXLSXWorksheet.WriteRowsmenambahkan output XLSX batch baris. Pemanggil dapat mengisi rentang numerik atau gaya A1 satu baris pada satu waktu dengan mengembalikan arrayVariant, dengan skip seluruh baris, pembatalan, dan jumlah baris yang ditulis
Versi 2.88.156
Ditambahkan
TXLSXWorksheet.ForEachRowmenambahkan pemindaian XLSX level baris. Callback berjalan satu kali per baris yang dimuat, melaporkan baris beserta kolom pertama dan terakhir yang dimuat, mengembalikan jumlah baris yang dikunjungi, dan mendukung pembatalan
Versi 2.88.155
Diubah
OpenODSkini mengimpor hasil skalar cache dari sel formula ODS. Saat sel formula menyimpan nilai cache numerik, Boolean, tanggal, atau waktu tanpaoffice:value-type, importer mempertahankan nilai sel cache sambil membiarkan sintaks formula ODS tidak dikonversi
Versi 2.88.154
Diubah
OpenODSkini mempertahankan format angka dan tanggal ODS dasar. Gaya table-cell ODS yang tertaut ke data style tanggal, waktu, angka, persentase, atau mata uang kini dipetakan ke stringNumberFormatXLSX sepertiyyyy-mm-dddan0.00, sehingga nilai yang diimpor mempertahankan format tampilan dasar
Versi 2.88.153
Diubah
- Sel gabungan ODS kini diimpor sebagai rentang gabungan XLSX.
OpenODSmemetakantable:number-columns-spanneddantable:number-rows-spannedpada sel ODS keTXLSXMergedCells, menjaga nilai pada sel kiri atas dan membiarkan sel tertutup kosong
Versi 2.88.152
Diubah
- Nama sheet ODS kini dapat dibaca tanpa memuat worksheet.
TXLSXWorkbook.GetODSSheetNames(FileName, AList)danGetODSSheetNames(Stream, AList)memindai nama tabelcontent.xmldari paket.ods, mendekode escape XML, menyintesis nama default untuk tabel tanpa nama, dan membiarkan instance workbook tidak berubah
Versi 2.88.151
Diubah
- Record DIMENSION XLS klasik kini menginformasikan used range kosong. Saat worksheet .xls buatan Excel mendeklarasikan used range dalam
DIMENSIONtetapi tidak membawa record sel, HotXLS kini mengekspos rentang itu melaluiUsedRangedan mempertahankannya selama open/save, bukan fallback keA1
Versi 2.88.150
Diperbaiki
- Referensi formula eksternal era BIFF5 kini dimuat dengan benar. Parser XLS klasik kini menyelesaikan indeks sheet eksternal Excel5 positif dalam token
tRef3d/tArea3ddantNameX, sehingga formula .xls lama mempertahankan rentang 3D berkualifikasi sheet dan referensi nama eksternal selama open/save
Versi 2.88.149
Dihapus
- Record ekstensi kalkulasi dan style BIFF8 kini round-trip. HotXLS mempertahankan record keluarga
MTRSettings,ForceFullCalculation,CrErr, worksheetUncalced,XFCRC,DXFindependen,StyleExt, danTableStylesbuatan Excel selama siklus open/save XLS klasik, sehingga metadata recalculation dan ekstensi style tidak lagi dibuang
Versi 2.88.148
Ditambahkan
- Demo C++Builder kini sesuai dengan cakupan sampel Delphi. Menambahkan proyek C++Builder untuk
XlsTables,XlsCondFormat12, danXlsCreateChart, dengan halaman README yang sesuai serta cakupan build Win32/Win64
Versi 2.88.147
Dihapus
- Custom Views BIFF8 kini bertahan pada round-trip XLS klasik. HotXLS mempertahankan blok
USERSVIEWBEGIN/USERSVIEWENDbuatan Excel di workbook globals dan substream worksheet, termasuk record yang belum dimodelkan di dalam blok, sehingga custom views yang disimpan tidak dibuang selama open/save
Versi 2.88.146
Dihapus
- View workbook BIFF8 dan global ekstensi kini round-trip. HotXLS mempertahankan record
HIDEOBJ,TEMPLATEpanjang nol,TABID, danBOOKEXTbuatan Excel selama open/save sehingga kebijakan tampilan objek tersembunyi, penanda template, pengenal tab sheet, dan metadata ekstensi workbook tidak dibuang
Versi 2.88.145
Diubah
- TXLSXWorkbook kini dapat mengimpor file OpenDocument Spreadsheet dasar.
OpenODS(FileName)danOpenODS(Stream)membaca tabelcontent.xmldari paket.odske worksheet, mempertahankan nama sheet, nilai skalar, baris berulang, dan kolom berulang. Style, formula, drawing, chart, dan fitur ODS lanjutan tidak dikonversi
Versi 2.88.144
Diubah
- Edit baris dan kolom XLSX kini memperbarui kriteria kolom AutoFilter.
TXLSXWorksheet.InsertRows,DeleteRows,InsertCols, danDeleteColskini memetakan ulang offsetAutoFilterColumnsColIdsaat rentang filter bergerak dan menghapus kriteria yang berada di dalam kolom yang dihapus
Versi 2.88.143
Diubah
- Edit baris dan kolom XLSX kini memperbarui page break manual.
TXLSXWorksheet.InsertRows,DeleteRows,InsertCols, danDeleteColskini memindahkan page break baris dan kolom bersama grid yang diedit serta menghapus break yang berada di dalam baris atau kolom yang dihapus
Versi 2.88.142
Diubah
- Edit baris dan kolom XLSX kini memperbarui referensi print setup.
TXLSXWorksheet.InsertRows,DeleteRows,InsertCols, danDeleteColskini menyesuaikanPrintArea,PrintTitleRows, danPrintTitleColssehingga rentang cetak dan judul berulang mengikuti grid yang diedit
Versi 2.88.141
Diubah
- Edit baris dan kolom XLSX kini memperbarui target hyperlink internal.
TXLSXWorksheet.InsertRows,DeleteRows,InsertCols, danDeleteColskini menyesuaikan anchor internalTXLSXHyperlink.Locationpada sheet yang diedit dan target internal berkualifikasi sheet di tempat lain dalam workbook
Versi 2.88.140
Diubah
- Edit baris dan kolom XLSX kini memperbarui formula aturan.
TXLSXWorksheet.InsertRows,DeleteRows,InsertCols, danDeleteColskini menyesuaikan referensi A1 di dalamTXLSXConditionalFormat.Formula1/Formula2danTXLSXDataValidation.Formula1/Formula2, sementara ambang numerik dan daftar literal tetap tidak berubah
Versi 2.88.139
Diubah
- Edit baris dan kolom XLSX kini memperbarui rentang seri chart.
TXLSXWorksheet.InsertRows,DeleteRows,InsertCols, danDeleteColskini menyesuaikanTXLSXChartSeries.CategoriesRangedanValuesRangeuntuk chart pada sheet yang diedit serta chart di tempat lain yang memakai referensi berkualifikasi sheet, menjaga binding data chart tetap selaras setelah siklus save/reopen
Versi 2.88.138
Diubah
- Edit baris dan kolom XLSX kini memperbarui formula sel.
TXLSXWorksheet.InsertRows,DeleteRows,InsertCols, danDeleteColskini menyesuaikan referensi A1 dalam formula sel yang bertahan pada sheet yang diedit dan formula berkualifikasi sheet di tempat lain dalam workbook, sambil membiarkan string dan sheet yang tidak terkait tetap tidak berubah
Versi 2.88.137
Diubah
- Edit baris dan kolom XLSX kini memindahkan anchor drawing.
TXLSXWorksheet.InsertRows,DeleteRows,InsertCols, danDeleteColskini memindahkan anchor gambar satu sel serta mengubah ukuran atau memindahkan anchor chart dua sel bersama grid yang diedit, termasuk round-trip save/reopen
Versi 2.88.136
Diubah
- Edit baris dan kolom XLSX kini memperbarui defined names.
TXLSXWorksheet.InsertRows,DeleteRows,InsertCols, danDeleteColskini menyesuaikan formulaTXLSXDefinedNameberlingkup workbook dan berlingkup sheet yang menunjuk ke sheet yang diedit, mempertahankan penanda A1 absolut di seluruh siklus save/reopen
Versi 2.88.135
Ditambahkan
- Kotak teks XLS klasik kini mendukung offset anchor sub-sel.
TXLSTextBoxmengeksposRow1Offs,Col1Offs,Row2Offs, danCol2Offs, dan overloadSetAreayang sadar offset mempertahankan offset client-anchor BIFF di seluruh siklus save/reopen
Versi 2.88.134
Diubah
- Pemeriksaan payload makro XLSX kini memiliki alias properti read-only.
TXLSXWorkbook.VbaProjectDefinedmencerminkanHasVbaProject, memberi pemanggil berorientasi properti cara langsung untuk menguji apakah payloadvbaProject.binada
Versi 2.88.133
Diubah
- Worksheet XLSX kini mengekspos pembersihan nilai rentang secara langsung.
TXLSXWorksheet.ClearRangeValuesmenerima referensi A1 atau batas baris/kolom dan membersihkan nilai/formula sambil mempertahankan style, sehingga pemanggil tidak perlu membuat wrapperTXLSXRangeterlebih dahulu
Versi 2.88.132
Dihapus
- Rentang XLSX kini dapat membersihkan isi sel dengan helper eksplisit yang berfokus pada nilai.
TXLSXRange.ClearValuesmenghapus nilai dan formula di seluruh rentang sambil mempertahankan indeks style, sesuai denganCleartetapi membuat pembersihan khusus konten lebih mudah ditemukan
Versi 2.88.131
Diubah
- Literal data-validation daftar XLSX kini meng-escape tanda kutip ganda tertanam.
TXLSXDataValidations.AddListdanTXLSXWorksheet.AddListValidationmenggandakan karakter tanda kutip di dalam teks item yang dipisahkan koma sebelum membungkusnya sebagai string formula Excel, sehingga nilai dropdown yang berisi tanda kutip dapat round-trip dengan benar
Versi 2.88.130
Dihapus
- Kriteria AutoFilter XLSX kini dapat dibersihkan langsung dari koleksi kriteria.
TXLSXAutoFilterColumns.ClearCriteriamenghapus semua kriteria filter per kolom yang tersimpan sambil tetap mempertahankanAutoFilterRangeworksheet
Versi 2.88.129
Ditambahkan
- Rentang gabungan XLSX kini menormalkan koordinat terbalik saat ditambahkan.
TXLSXMergedCells.Addmenyimpan rentang dalam urutan kiri-atas / kanan-bawah bahkan saat pemanggil meneruskan sel akhir terlebih dahulu, menghasilkan referensi stabil sepertiA2:E6
Versi 2.88.128
Ditambahkan
- Koleksi worksheet XLSX kini mendukung penghapusan langsung berdasarkan nama.
TXLSXSheetsmenambahkanDeleteByName, memungkinkan aplikasi menghapus worksheet berdasarkan nama tanpa peka huruf besar-kecil sambil menjaga pemilihan sheet aktif tetap konsisten
Versi 2.88.127
Ditambahkan
- Koleksi chart XLSX kini mendukung lookup dan penghapusan langsung berdasarkan judul.
TXLSXChartsmenambahkanIndexOfName,FindByName,DeleteByName, danDelete, sehingga aplikasi dapat menemukan atau menghapus chart berdasarkan judul tanpa pemindaian koleksi manual
Versi 2.88.126
Ditambahkan
- Koleksi external-link XLSX kini mendukung lookup dan penghapusan langsung berdasarkan target.
TXLSXExternalLinksmenambahkanIndexOfTarget,FindByTarget,DeleteByTarget, danDelete, sehingga aplikasi dapat memeriksa atau menghapus metadata workbook tertaut tanpa pemindaian koleksi manual
Versi 2.88.125
Ditambahkan
- Koleksi merged-cell XLSX kini mendukung lookup dan penghapusan langsung berdasarkan rentang.
TXLSXMergedCellsmenambahkanIndexOfCell,FindAt,DeleteAt, danDeleteInRange, sehingga aplikasi dapat memeriksa atau menghapus rentang gabungan tanpa pemindaian koleksi manual
Versi 2.88.124
Ditambahkan
- Koleksi conditional-format dan data-validation XLSX kini mendukung lookup dan penghapusan sadar rentang.
TXLSXConditionalFormatsdanTXLSXDataValidationsmenambahkanIndexOfCell,FindAt,DeleteAt, danDeleteInRange, sehingga aplikasi dapat menemukan atau menghapus aturan yang mencakup sel atau beririsan dengan rentang tanpa pemindaiansqrefmanual
Versi 2.88.123
Ditambahkan
- Koleksi gambar XLSX kini mendukung lookup dan penghapusan anchor langsung.
TXLSXImagesmenambahkanIndexOfCell,FindAt,DeleteAt,DeleteInRange, danDelete, sehingga aplikasi dapat memeriksa atau menghapus gambar tertanam tanpa pemindaian koleksi manual
Versi 2.88.122
Ditambahkan
- Koleksi kolom AutoFilter XLSX kini mendukung lookup dan penghapusan langsung.
TXLSXAutoFilterColumnsmenambahkanFindByColIddanDeleteByColId, sehingga aplikasi dapat memeriksa atau menghapus kriteria per kolom tanpa pemindaian koleksi manual
Versi 2.88.121
Ditambahkan
- Koleksi tabel XLSX kini mendukung lookup dan penghapusan tabel langsung.
TXLSXTablesmenambahkanIndexOfName,FindByName, danDeleteByName, sehingga aplikasi dapat menemukan atau menghapus tabel worksheet bernama tanpa pemindaian koleksi manual
Versi 2.88.120
Ditambahkan
- Koleksi defined-name XLSX kini mendukung lookup dan penghapusan objek langsung.
TXLSXDefinedNamesmenambahkan overloadIndexOfName(Name, SheetIndex),FindByName, danDeleteByName, sehingga aplikasi dapat bekerja dengan nama berlingkup workbook dan berlingkup sheet tanpa pemindaian koleksi manual
Versi 2.88.119
Ditambahkan
- Koleksi komentar dan hyperlink XLSX kini mendukung lookup dan penghapusan berbasis sel.
TXLSXCommentsdanTXLSXHyperlinksmengeksposIndexOfCell,FindAt,DeleteAt, danDeleteInRange, sehingga kode aplikasi dapat menemukan atau menghapus komentar dan tautan worksheet tanpa pemindaian koleksi manual
Versi 2.88.118
Diubah
- Demo ApiTour kini memeriksa objek workbook XLSX yang dibuka ulang. Contoh Delphi dan C++Builder ApiTour membuka kembali workbook XLSX yang dihasilkan dan menulis baris
reopen-inspectuntuk defined names, komentar, hyperlink, rentang autofilter, dan kriteria autofilter keApiTour-XLSX-Modified.xlsx
Versi 2.88.117
Dihapus
- Record workbook file-sharing dan revision-protection BIFF8 kini round-trip. HotXLS mempertahankan body record
FILESHARING,FILESHARING2,PROT4REV, danPROT4REVPASSbuatan Excel selama open/save sehingga metadata rekomendasi read-only, sharing, dan revision-protection tidak dibuang
Versi 2.88.116
Diubah
- Demo ApiTour kini mencakup helper objek workbook XLSX. Contoh Delphi dan C++Builder ApiTour membuat defined name, komentar worksheet, hyperlink, rentang autofilter, dan kriteria autofilter sambil mempertahankan workflow callback, penggantian teks, dan ekspor yang sudah ada
Versi 2.88.115
Diubah
- Demo InteractiveFeatures kini dapat membuka ulang workbook pivot XLS klasik. Tab Pivot Delphi dan C++Builder dapat membuka workbook pivot XLS klasik yang sudah ada, mengenumerasi pivot table tersimpan pada setiap worksheet, dan mencatat jumlah field, jumlah data field, serta rentang sumber cache setiap tabel
Versi 2.88.114
Diubah
- Demo InteractiveFeatures kini dapat membuka ulang workbook XLS klasik untuk workflow TextBox. Form Delphi dan C++Builder dapat membuka workbook XLS klasik yang sudah ada, menemukan kotak teks drawing mandiri yang tersimpan, mencantumkannya, dan melanjutkan operasi edit, delete, range-delete, dan save terhadap file yang dibuka
Versi 2.88.113
Diubah
- Demo C++Builder kini menyertakan sampel InteractiveFeatures untuk workflow workbook lanjutan. Form VCL menyediakan jalur Pivot / TextBox / Macro interaktif yang sama, dengan pembuatan pivot table XLS klasik bertipe, pengeditan kotak teks drawing mandiri, serta load/export/clear payload XLSM
vbaProject.binplus inspeksi modul yang diurai
Versi 2.88.112
Diubah
- Demo Delphi kini menyertakan sampel InteractiveFeatures untuk workflow workbook lanjutan. Form VCL membuat pivot table XLS klasik bertipe, mengedit kotak teks drawing mandiri, dan menangani load/export/clear payload XLSM
vbaProject.binplus inspeksi modul yang diurai
Versi 2.88.111
Ditambahkan
- Worksheet XLS klasik kini mendukung kotak teks drawing mandiri. Gunakan
TXLSShapes.AddTextBoxuntuk membuatTXLSTextBoxdengan anchor baris/kolom sendiri, teks, run teks, format line/fill, dan penghapusan shape normal tanpa membuat komentar sel
Versi 2.88.110
Diubah
- Demo ApiTour kini mencakup lebih banyak pola otomasi workbook. Sampel Delphi dan C++Builder ApiTour mendemonstrasikan penulisan rentang berbasis callback dengan
WriteCells, pemindaian sel yang dimuat denganForEachCell, pembaruan template denganFindTextdanReplaceText, ekspor HTML rentang terpilih keApiTour-Range.html, dan callback formula kustom Delphi melaluiOnUserFunction
Versi 2.88.109
Diubah
- Demo QuickStart kini menampilkan workbook pertama yang lebih lengkap. Sampel Delphi dan C++Builder QuickStart membuat tabel perkalian bergaya dengan formula total baris dan kolom, frozen panes, serta aksi XLS/XLSX yang sesuai; tree demo kini juga menyertakan halaman readme HTML yang dipoles untuk setiap contoh
Versi 2.88.108
Diubah
- Rentang XLSX kini memiliki helper ekspor HTML langsung.
TXLSXRange.SaveAsHTML(FileName)danTXLSXRange.SaveAsHTML(Stream)hanya mengekspor rentang XLSX yang dipilih sebagai tabel HTML UTF-8, berbagi escaping renderer HTML workbook, output style dasar, dan penanganan span sel gabungan
Versi 2.88.107
Ditambahkan
- Worksheet XLSX kini menyertakan helper pencarian dan penggantian teks.
TXLSXWorksheet.FindTextdanTXLSXWorksheet.ReplaceTextmemindai sel teks yang dimuat dalam urutan row-major, melewati formula dan nilai non-teks, serta mendukung pencocokan peka huruf besar-kecil opsional untuk workflow template
Versi 2.88.106
Diubah
- Flag tampilan Window2 BIFF8 kini mempertahankan status warna gridline kustom dan frozen-pane. HotXLS kini menghapus
fDefaultHdrsaatWindow2.icvHdrmenyimpan warna gridline kustom, mempertahankanfFrozenNoSplitbuatan Excel selama open/save, dan menulisfFrozenNoSplituntuk outputFreezePanes
Versi 2.88.105
Diubah
- Threshold formula CF12 kini round-trip melalui aturan BIFF8 Data Bar, Color Scale, dan Icon Set. Nilai threshold berbasis formula dikompilasi menjadi byte token formula CF12 saat disimpan dan dipulihkan ke
TXLSCfValue.Valuesaat workbook dibuka kembali
Versi 2.88.104
Diubah
- Formula XLS klasik dan threshold icon-set kini menghasilkan record BIFF8 yang lebih ringkas. Konstanta integer dalam formula memakai token
tIntyang ringkas saat muat dalam rentang unsigned-integer BIFF, danTXLSIconSetSpec.ThresholdEqualsInclude[Index]kini mengontrol byte equals threshold icon-set CF12 sehingga pemanggil dapat memilih semantik perbandingan include atau exclude
Versi 2.88.103
Diubah
- Worksheet XLS klasik kini menyertakan helper pencarian teks.
IXLSWorksheet.FindText(SearchText, Row, Col[, MatchCase])menemukan sel teks yang dimuat pertama yang cocok, melewati formula dan sel non-teks, serta mengosongkan koordinat yang dikembalikan saat tidak ada kecocokan
Versi 2.88.102
Diubah
- Worksheet XLS klasik kini menyertakan helper penggantian teks.
IXLSWorksheet.ReplaceText(SearchText, ReplacementText[, MatchCase])mengganti kecocokan dalam sel teks yang dimuat, melewati formula dan sel non-teks, serta melaporkan jumlah sel yang berubah untuk workflow pengisian template
Versi 2.88.101
Diubah
- Rentang kini memiliki helper ekspor HTML langsung.
IXLSRange.SaveAsHTML(FileName)danIXLSRange.SaveAsHTML(Stream)mengekspor rentang yang dipilih melalui renderer HTML yang sudah ada, sehingga pemanggil tidak lagi perlu membuat instanceTXLSHTMLExportatau meneruskanxlHTMLsecara eksplisit untuk fragmen rentang umum
Versi 2.88.100
Diubah
TXLSWorkbook.GetSheetNames(Stream, AList)kini membaca stream paket XLSX selain stream XLS klasik. Aplikasi dapat meneruskan memory stream, database BLOB stream, atau stream XLSX yang diunduh ke facade klasik dan menerima nama worksheet berurutan tanpa harus menyimpan ke file terlebih dahulu
Versi 2.88.99
Ditambahkan
- API lookup worksheet, pembuatan hyperlink, dan pemilihan multi-area kini lebih mudah digunakan. Koleksi sheet XLS klasik dan XLSX menambahkan
TryGetSheetByName, worksheet XLS klasik menambahkan overload kemudahanAddHyperlink, danIXLSWorksheet.SelectAreasdapat menulis pilihan multi-range aktif
Versi 2.88.98
Diubah
- Workbook XLS klasik kini mengekspos alias
UserNameuntuk field saved-by.IXLSWorkbook.UserNamedipetakan ke nilai WRITEACCESS yang sama denganLastSavedBy, sehingga kode yang memakai konvensi penamaanUserNamedapat membaca dan memperbarui nama audit workbook secara langsung
Versi 2.88.97
Diubah
- Worksheet XLSX kini berbagi helper pemindaian sel callback dan penulisan rentang.
TXLSXWorksheet.ForEachCellmengenumerasi sel yang dimuat dalam urutan baris dengan nilai dan teks formula, sementaraTXLSXWorksheet.WriteCellsmengisi rentang numerik atau gaya A1 dari callback dengan skip per sel dan pembatalan
Versi 2.88.96
Ditambahkan
- Worksheet XLS klasik kini mendukung penulisan rentang berbasis callback.
IXLSWorksheet.WriteCellsmengisi rentang numerik berbasis 1 atau rentang gaya A1 dalam urutan baris, memungkinkan callback menyediakan setiap nilai sel, mendukung skip per sel, dan dapat membatalkan loop penulisan panjang lebih awal
Versi 2.88.95
Diubah
- Worksheet XLS klasik kini dapat mengenumerasi sel yang dimuat melalui callback.
IXLSWorksheet.ForEachCellmenelusuri sel worksheet yang ada dalam urutan baris, meneruskan koordinat sheet, baris, dan kolom berbasis 1 bersama nilai dan teks formula, serta memungkinkan callback membatalkan pemindaian panjang lebih awal
Versi 2.88.94
Diubah
- Kalkulasi formula kini dapat memanggil fungsi yang didefinisikan aplikasi.
TXLSWorkbook.OnUserFunctiondanTXLSXWorkbook.OnUserFunctionmemungkinkanCalculatemendelegasikan fungsi worksheet kustom atau tidak didukung ke kode aplikasi, meneruskan argumen yang sudah dievaluasi dan memakai hasilVariantyang dikembalikan saat ditangani
Versi 2.88.93
Ditambahkan
- Proteksi worksheet XLS klasik kini mengekspos flag izin per aksi.
IXLSWorksheetmenambahkanAllowDeleteRows,AllowInsertRows,AllowFormatCells,AllowSort,AllowAutoFilter, dan properti izin SheetProtect lainnya, dengan opsi BIFF8 yang ditulis dan dibaca kembali melalui record proteksi yang sudah ada
Versi 2.88.92
Diubah
- Payload VBA XLS klasik kini memiliki helper load/save/clear eksplisit.
IXLSWorkbook.LoadVBAProjectFromFile,SaveVBAProjectToFile,HasVBAProject, danClearVBAProjectmengekspos payload OLE VBA storage yang dipertahankan sementaraVBAProjecttetap menjadi tampilan modul parsed read-only
Versi 2.88.91
Diubah
- Kriteria AutoFilter XLS klasik kini dapat diperiksa melalui koleksi field.
IXLSWorksheet.AutoFilterColumnsmengekspos jumlah field AutoFilter BIFF8 saat ini dan item field berbasis 1, termasuk status aktif, operator, dan nilai DOPERCriteria1/Criteria2yang tersimpan
Versi 2.88.90
Diubah
- Worksheet XLS klasik kini memiliki setup kriteria AutoFilter satu panggilan.
IXLSWorksheet.ApplyAutoFiltermenetapkan rentang AutoFilter worksheet dan menulis kriteria field dalam panggilan yang sama, dengan overload rentang gaya A1 dan numerik berbasis 1 plus operator dua kriteria opsional
Versi 2.88.89
Dihapus
- Shape XLS klasik kini dapat dihapus berdasarkan rentang sel.
TXLSShapes.DeleteInRangemenghapus gambar atau shape tertambat yang anchor client OfficeArt-nya beririsan dengan rentang worksheet berbasis 1, mengembalikan jumlah shape yang dihapus
Versi 2.88.88
Diubah
- Atribut tata letak tabel ekspor HTML klasik kini dapat dikonfigurasi.
TXLSHTMLExport.TableBorderWidth,CellPadding, danCellSpacingmengontrol atribut<table>yang dihasilkan untuk output HTML bergaya maupun sederhana sambil tetap default ke nilai nol sebelumnya
Versi 2.88.87
Ditambahkan
- Ekspor HTML klasik kini mendukung output tabel minimal.
TXLSHTMLExport.SimpleExportmenulis tabel HTML polos tanpa kelas CSS yang dihasilkan, anchor hyperlink, atau atribut title komentar sambil mempertahankan teks tampilan yang di-escape dan span sel gabungan
Versi 2.88.86
Diubah
- Ekspor HTML klasik kini dapat menulis judul dokumen.
TXLSHTMLExport.Titlemenulis elemen HTML<title>yang di-escape sebelum blok style yang dihasilkan, sementara nilai kosong default mempertahankan output yang sudah ada
Versi 2.88.85
Diubah
- Ekspor HTML klasik kini membawa komentar sel sebagai tooltip.
TXLSHTMLExport.Optionskini menyertakanxhCommentssecara default, menulis teks komentar sel sebagai atributtitleyang di-escape sambil tetap memungkinkan pemanggil menghapus opsi tersebut untuk output sel polos
Versi 2.88.84
Diubah
- Output hyperlink ekspor HTML klasik kini dapat dikonfigurasi.
TXLSHTMLExport.Optionsdefault ke[xhHyperlinks]untuk perilaku yang sudah ada, dan pemanggil dapat menghapusxhHyperlinksuntuk mengekspor sel bertautan sebagai teks polos yang di-escape
Versi 2.88.83
Diubah
- Ekspor HTML klasik kini mempertahankan hyperlink sel.
SaveAsHTMLmembungkus sel bertautan dalam tag anchor HTML, menghasilkan alamat hyperlink sebagai nilaihrefyang di-escape, membawa teks ScreenTip sebagai atributtitleyang di-escape, dan menjaga teks sel yang ditampilkan tetap di-escape di dalam tautan
Versi 2.88.82
Diubah
- Workbook XLS klasik kini dapat mengontrol nama pengguna saved-by.
IXLSWorkbook.LastSavedBymengekspos field saved-by WRITEACCESS sehingga workbook yang dihasilkan atau diedit dapat menyimpan nama audit eksplisit sementara workbook sumber yang tidak diedit tetap mempertahankan metadata aslinya
Versi 2.88.81
Diubah
- Worksheet XLS klasik kini dapat mengontrol indeks warna gridline yang ditampilkan.
IXLSWorksheet.GridlineColorIndexmengekspos field Window2icvHdrsehingga worksheet yang disimpan dapat dibuka kembali dengan warna gridline pilihan sambil membiarkan visibilitas gridline dan pengaturan print gridline tidak berubah
Versi 2.88.80
Diubah
- Workbook XLS klasik kini dapat mengatur sheet aktif berdasarkan indeks.
IXLSWorkbook.ActiveSheetIndexmengekspos properti tab aktif berbasis 1 yang didukung field active sheet WINDOW1, memungkinkan workbook yang disimpan dibuka kembali pada worksheet pilihan tanpa mengubah tab pertama yang terlihat
Versi 2.88.79
Diubah
- Outline worksheet XLS klasik kini dapat mengontrol gaya outline otomatis.
TXLSOutline.ApplyStylesmengekspos flag style outline WSBool, memungkinkan worksheet yang disimpan mempertahankan atau mengaktifkan penerapan style outline Excel secara eksplisit tanpa mengubah level outline atau penempatan summary
Versi 2.88.78
Diubah
- Page setup XLS klasik kini dapat mengontrol page break otomatis.
IXLSPageSetup.AutoPageBreaksmengekspos flag page-break otomatis WSBool worksheet, memungkinkan worksheet yang disimpan mempertahankan page break otomatis tetap aktif atau menonaktifkannya secara eksplisit sambil mempertahankan page break manual
Versi 2.88.77
Diubah
- Workbook XLS klasik kini dapat mengontrol pengelompokan tanggal AutoFilter.
IXLSWorkbook.AutoFilterDateGroupingmengekspos flag date-grouping Window1 dengan API Boolean positif, memungkinkan workbook yang disimpan mempertahankan pengelompokan filter tanggal Excel tetap aktif atau menonaktifkannya secara eksplisit
Versi 2.88.76
Diubah
- Workbook XLS klasik kini dapat mengatur posisi dan ukuran jendela workbook secara langsung.
IXLSWorkbook.XWindow,YWindow,WindowWidth, danWindowHeightmengekspos field geometri Window1 sehingga workbook yang disimpan dapat dibuka kembali dengan rectangle jendela pilihan
Versi 2.88.75
Diubah
- Workbook XLS klasik kini dapat menyimpan status tersembunyi jendela workbook secara langsung.
IXLSWorkbook.WindowHiddendipetakan ke flag hidden Window1, memungkinkan workbook yang disimpan dibuka kembali dengan jendela workbook tersembunyi tanpa mengubah visibilitas worksheet
Versi 2.88.74
Diubah
- Workbook XLS klasik kini dapat menyimpan status diminimalkan jendela workbook secara langsung.
IXLSWorkbook.Minimizeddipetakan ke flag minimized Window1, memungkinkan workbook yang disimpan dibuka kembali dengan jendela workbook diminimalkan
Versi 2.88.73
Diubah
- Workbook XLS klasik kini dapat menyembunyikan atau menampilkan scrollbar vertikal secara langsung.
IXLSWorkbook.ShowVerticalScrolldipetakan ke flag Window1fDspVScroll, memungkinkan workbook yang disimpan terbuka dengan scrollbar vertikal tersembunyi atau terlihat
Versi 2.88.72
Diubah
- Workbook XLS klasik kini dapat menyembunyikan atau menampilkan scrollbar horizontal secara langsung.
IXLSWorkbook.ShowHorizontalScrolldipetakan ke flag Window1fDspHScroll, memungkinkan workbook yang disimpan terbuka dengan scrollbar horizontal tersembunyi atau terlihat
Versi 2.88.71
Diubah
- Workbook XLS klasik kini dapat menyembunyikan atau menampilkan bilah tab sheet secara langsung.
IXLSWorkbook.ShowSheetTabsdipetakan ke flag Window1fDspTabs, memungkinkan workbook yang disimpan terbuka dengan tab sheet tersembunyi atau terlihat tanpa mengubah visibilitas worksheet
Versi 2.88.70
Diubah
- Workbook XLS klasik kini dapat mengatur rasio bilah tab workbook secara langsung.
IXLSWorkbook.TabRatiomengekspos nilai Window1wTabRatiosehingga pemanggil dapat menyesuaikan ruang yang disediakan untuk tab sheet versus scrollbar horizontal
Versi 2.88.69
Diubah
- Workbook XLS klasik kini dapat mengatur tab sheet pertama yang terlihat secara langsung.
IXLSWorkbook.FirstSheetmengekspos nilai Window1itabFirstsebagai properti berbasis 1, sehingga pemanggil dapat memilih tab sheet mana yang muncul di tepi kiri saat Excel membuka workbook
Versi 2.88.68
Diubah
- Worksheet XLS klasik kini dapat mempertahankan dan mengatur visibilitas simbol outline.
IXLSWorksheet.DisplayOutlineSymbolsdipetakan ke flag BIFF WINDOW2fDspGuts, memungkinkan sheet yang disimpan menyembunyikan simbol outline dan grouping dalam tampilan jendela
Versi 2.88.67
Diubah
- Worksheet XLS klasik kini dapat mempertahankan dan mengatur visibilitas heading baris dan kolom.
IXLSWorksheet.DisplayHeadingsdipetakan ke flag BIFF WINDOW2fDspRwCol, memungkinkan sheet yang disimpan menyembunyikan nomor baris dan huruf kolom dalam tampilan jendela
Versi 2.88.66
Diubah
- Worksheet XLS klasik kini dapat mempertahankan dan mengatur tampilan show-formulas.
IXLSWorksheet.DisplayFormulasdipetakan ke flag BIFF WINDOW2fDspFmlasehingga Excel dapat membuka sheet yang menampilkan teks formula, bukan hasil hitungan
Versi 2.88.65
Diubah
- Worksheet XLS klasik kini dapat mengatur zoom Normal view secara independen.
IXLSWorksheet.NormalViewZoommengekspos zoom Normal WINDOW2 yang di-cache sehingga pemanggil dapat menyimpan level zoom berbeda saat sheet berada dalam Page Break Preview
Versi 2.88.64
Diubah
- Worksheet XLS klasik kini dapat mengatur zoom Page Break Preview secara langsung.
IXLSWorksheet.PageBreakPreviewZoommengekspos zoom preview WINDOW2 yang di-cache sehingga pemanggil dapat menyimpan level zoom Normal dan Page Break Preview yang berbeda
Versi 2.88.63
Diubah
- Worksheet XLS klasik kini mengekspos helper split-pane.
IXLSWorksheet.SplitPanes(Width, Height)membuat pane split yang dapat digeser menggunakan penulis pane BIFF yang sudah ada, danUnsplitPanesmenghapus record pane sebelum disimpan
Versi 2.88.62
Dihapus
- Worksheet XLS klasik kini memiliki helper frozen-pane yang lebih sederhana.
IXLSWorksheet.FreezePanes(Cols, Rows)membekukan kolom kiri dan baris atas yang diminta, sementaraUnfreezePanesmenghapus record pane sebelum disimpan
Versi 2.88.61
Diubah
- Penemuan nama sheet XLS klasik kini menerima stream.
TXLSWorkbook.GetSheetNames(Stream, List)membaca nama sheet BIFF dari stream XLS yang diberikan pemanggil tanpa memuat isi worksheet, menyamai helper file-name untuk data workbook dalam memori
Versi 2.88.60
Diperbaiki
- Koleksi worksheet kini mengekspos helper lookup langsung berdasarkan nama.
IXLSWorkSheets.SheetByName(Name)danTXLSXSheets.SheetByName(Name)mengembalikan objek worksheet yang cocok ataunil, sehingga pemanggil tidak lagi perlu menyelesaikan indeks sebelum mengakses sheet
Versi 2.88.59
Diubah
- Facade XLSX kini membaca nama sheet langsung dari stream.
TXLSXWorkbook.GetSheetNames(Stream, List)membaca nama berurutan darixl/workbook.xmltanpa memuat XML worksheet, menyamai overload file-name untuk workbook dalam memori dan berbasis BLOB
Versi 2.88.58
Diubah
- Facade XLSX kini mengekspos penemuan nama sheet cepat.
TXLSXWorkbook.GetSheetNames(FileName, List)membaca nama berurutan darixl/workbook.xmltanpa memuat XML worksheet
Versi 2.88.57
Ditambahkan
TXLSWorkbook.GetSheetNameskini mendukung paket XLSX. Metode ini membacaxl/workbook.xmldari file.xlsx,.xlsm,.xltx, dan.xltmserta mengembalikan nama sheet berurutan tanpa memuat XML worksheet
Versi 2.88.56
Diubah
- Workbook XLS klasik kini dapat membaca nama sheet tanpa memuat worksheet.
TXLSWorkbook.GetSheetNames(FileName, List)memindai stream globals workbook dan mengembalikan nama sheet berurutan dari file Excel 97-2003.xls
Versi 2.88.55
Diubah
- Kriteria AutoFilter rentang XLS klasik kini menulis record filter BIFF8.
TXLSRange.Autofilter(Field, Criteria)membuat rentang filter saat diperlukan dan menghasilkan kondisiAUTOFILTERuntuk kriteria string sederhana, numerik, Boolean, blank, nonblank, dan berawalan perbandingan
Versi 2.88.54
Diubah
- Worksheet XLS klasik kini memiliki helper AutoFilter level worksheet.
IXLSWorksheet.SetAutoFilter,ClearAutoFilter, danAutoFilterRangemengelola rentang dropdown filter BIFF8 secara langsung sambil memakai ulang penulisAUTOFILTERINFOdan nama database filter yang sudah ada
Versi 2.88.53
Ditambahkan
- Worksheet XLS klasik kini mengekspos pembuatan data-validation daftar.
IXLSWorksheet.AddListValidation(Range, Items)menulis record BIFF8DVALdanDV, menjaga dropdown terlihat secara default, mendukung daftar inline yang dipisahkan koma, dan mempertahankan aturan melalui round-tripOpen/SaveAs
Versi 2.88.52
Ditambahkan
- Kalkulasi formula kini bekerja konsisten di entry point XLS dan XLSX.
TXLSWorkbook.Calculatekini menerima formula bergaya Excel dengan tanda sama dengan di depan seperti=SUM(A1:B1)+C1, dan facade XLSX menambahkanTXLSXWorkbook.CalculatesertaTXLSXWorksheet.Calculate. Jalur XLSX berbagi parser dan evaluator token formula HotXLS untuk referensi sel dan rentang, sel formula yang direferensikan, referensi lintas sheet, serta rentang defined-name berlingkup workbook atau sheet
Versi 2.88.51
Ditambahkan
- Rentang XLSX kini mendukung merge across bergaya Excel.
TXLSXRange.Merge(True)menulis satu entri<mergeCell>per baris, sesuai perilakuRange.Merge(True)XLS klasik, sementaraMergetanpa argumen danMerge(False)tetap membuat satu persegi panjang gabungan untuk seluruh rentang
Versi 2.88.50
Diubah
- Penempatan HeaderFooter dan HFPicture BIFF8 kini sesuai aturan MS-XLS saat ini. HotXLS mempertahankan record
HeaderFooter($089C) buatan Excel untuk teks header dan footer halaman genap / pertama, serta memutar ulang recordHFPicture($0866) setelah dimensi worksheet dan objek drawing sesuai ABNF worksheet, sehingga detail tata letak halaman bertahan pada round-trip buka/simpan .xls
Versi 2.88.49
Diubah
- Run rich-text komentar kini memiliki API bertipe.
TXLSComment.TextRunsmengekspos entriFormatRunTXOBIFF8 sehingga pemanggil dapat memeriksa atau mengatur batas font per karakter dalam komentar .xls, sementara HotXLS tetap mempertahankan byte run yang mendasarinya untuk round-trip yang aman
Versi 2.88.48
Diubah
- Record SX pelengkap pivot-table kini diekspos melalui API bertipe. HotXLS kini melampirkan record pivot BIFF8 yang dimuat seperti
SXIVD,SXLI,SXFormat,SXEx,SXVDEx,SXRule,SXFilt, danSXAddlkeTXLSPivotTable.SupplementalRecordsuntuk inspeksi sambil tetap mempertahankan byte mentah asli untuk round-trip penyimpanan
Versi 2.88.47
Dihapus
- Nilai cache workbook eksternal kini bertahan pada round-trip buka/simpan .xls. HotXLS kini mempertahankan record BIFF8
XCTdanCRNyang melekat pada entriSUPBOOKyang dimuat, sehingga nilai sel cache untuk tautan workbook eksternal tidak lagi dibuang saat menyimpan
Versi 2.88.46
Diubah
- Level outline style bawaan kini bertahan pada round-trip buka/simpan .xls. HotXLS kini membaca dan mempertahankan byte
iLevelSTYLEBIFF8 untuk style bawaan, sehingga metadata style Excel RowLevel_1..7 dan ColLevel_1..7 tidak lagi direset ke default saat menyimpan
Versi 2.88.45
Diubah
- Metadata defined name kini bertahan pada round-trip buka/simpan .xls. HotXLS kini mempertahankan bit opsi record
NAMEBIFF8 dan byte shortcut yang dimuat kecuali defined name diedit, sehingga metadata function, object, procedure, calculated-expression, dan binary-name buatan Excel tidak lagi dibersihkan saat menyimpan
Versi 2.88.44
Dihapus
- Marker workbook ObProj kini bertahan pada round-trip buka/simpan .xls. HotXLS kini mempertahankan record BIFF8
ObProjyang dimuat bahkan saat tidak ada VBA storage yang diekspos melalui object model, sehingga marker proyek VBA level workbook dan metadata pihak ketiga tidak lagi dibuang saat menyimpan
Versi 2.88.43
Diubah
- Flag opsi worksheet kini bertahan pada round-trip buka/simpan .xls. HotXLS kini mempertahankan bit
WSBOOLBIFF8 yang belum dimodelkan seperti flag dialog-sheet, automatic page-break, style-application, dan outline-gutter display sambil tetap memperbarui pengaturan fit-to-page dan outline summary yang sudah ada melalui API publik
Versi 2.88.42
Diubah
- Record metadata workbook tambahan kini bertahan pada round-trip buka/simpan .xls. HotXLS kini mempertahankan body record BIFF8
COUNTRY,BOOKBOOL,BACKUP,FNGROUPCOUNT,USESELFS, danRECALCIDyang dimuat, bukan menulis ulang dengan default, sehingga metadata kompatibilitas dan kalkulasi level workbook tetap stabil
Versi 2.88.41
Diubah
- Pilihan multi-area dan fokus pane aktif kini bertahan pada round-trip buka/simpan .xls. HotXLS kini mempertahankan record
SELECTIONBIFF8 yang dimuat dan nilai active-panePANESkecuali pilihan sheet atau pane diubah melalui API, sehingga fokus pane split/frozen Excel dan pilihan multi-range tidak lagi diciutkan saat menyimpan
Versi 2.88.40
Dihapus
- Nama workbook eksternal kini bertahan pada round-trip buka/simpan .xls. HotXLS kini mempertahankan record
EXTERNALNAMEBIFF8 yang dimuat dan melekat pada entriSUPBOOKeksternal, termasuk metadata DDE/OLE/link dan ekor formula, sehingga nama eksternal dan definisi tautan tidak lagi dibuang saat menyimpan
Versi 2.88.39
Diubah
- File .xls BIFF8 yang dilindungi kata sandi kini memakai dan membaca record FILEPASS RC4 CryptoAPI. HotXLS kini menulis metadata
FILEPASSvMajor=2 bergaya Excel 2007/2010 untuk workbook .xls terenkripsi dan membaca file RC4 lama vMajor=1 serta RC4 CryptoAPI vMajor=2/3/4, sehingga workbook yang dilindungi kata sandi tidak lagi gagal atau turun ke header enkripsi lama
Versi 2.88.38
Diubah
- Metadata hyperlink .xls buatan Excel kini bertahan pada round-trip buka/simpan. HotXLS kini mempertahankan body record
HLinkBIFF8 untuk hyperlink yang dimuat kecuali hyperlink diedit, menjagastreamVersionsumber, bit opsihlstmfsepertifIcon, data moniker, dan metadata target terkait tetap stabil di seluruh penyimpanan
Versi 2.88.37
Diubah
- Status jendela workbook kini bertahan pada round-trip buka/simpan .xls. HotXLS kini membaca dan mempertahankan posisi jendela, ukuran, flag visibility/iconic, tab sheet pertama yang ditampilkan, jumlah tab terpilih, dan rasio tab-scrollbar dari record
WINDOW1BIFF8, bukan menulis ulang dengan default pada setiap penyimpanan
Versi 2.88.36
Diubah
- Pengguna saved-by WriteAccess BIFF8 kini bertahan pada round-trip buka/simpan .xls. HotXLS kini membaca dan mempertahankan body record
$005C WRITEACCESS, bukan mengganti pengguna saved-by Excel denganHotXLS, sehingga metadata audit workbook tetap stabil setelah disimpan
Versi 2.88.35
Diperbaiki
- Author komentar Excel kini bertahan pada round-trip buka/simpan .xls. Field
stAuthorrecordNoteBIFF8 kini diurai dan diteruskan ke model drawing note, bukan diganti dengan string kosong, sehingga author "Created by" komentar yang ditulis Excel dipertahankan saat HotXLS menyimpan workbook lagi
Versi 2.88.34
Diubah
- Opsi FOPT OfficeArt shape kini diekspos melalui option bag level rendah.
TXLSShape.OfficeArtOptionsmemungkinkan pemanggil lanjutan memeriksa, mengatur, dan menghapus PID FOPT tersimpan apa pun sebagaiLongWordatauWideString, sementara API level tinggiLine,Fill, warna, dan visibilitas yang sudah ada tetap tidak berubah
Versi 2.88.33
Diubah
- Record aturan solver-container OfficeArt tambahan kini round-trip. Selain
msofbtConnectorRule($F012) bertipe, HotXLS kini mempertahankan anak solver non-folder sepertiOfficeArtFArcRule($F014) danOfficeArtFCalloutRule($F017) sebagai record OfficeArt mentah di dalammsofbtSolverContainer($F005), sehingga drawing Excel lanjutan tidak lagi kehilangan hubungan solver non-connector saat disimpan
Versi 2.88.32
Diubah
- Marker OfficeArt ClientData tidak lagi digandakan setelah preservasi record tidak dikenal. MS-XLS mendefinisikan
OfficeArtClientData($F011) sebagai marker panjang nol yang recordObjberikutnya tetap merupakan record BIFF terpisah. v2.88.32 mengenali marker tersebut alih-alih menangkapnya sebagai leaf SpContainer tidak dikenal, sehingga shape yang diurai menghasilkan tepat satu marker $F011 saat disimpan sementara asumsi keliru bergaya container tetap berada di luar jalur XLS
Versi 2.88.31
Diubah
- Aturan connector OfficeArt kini round-trip. Drawing .xls buatan Excel menyimpan binding connector-line di
msofbtSolverContainer($F005) dengan record anakmsofbtConnectorRule($F012). v2.88.31 mengurai dan menghasilkan pasangan $F005/$F012 itu melaluiTMsoConnectorRules, mempertahankan start shape, end shape, connector shape, dan connection site di seluruh save/reload. Catatan audit sebelumnya mencantumkan $F121, tetapi MS-ODRAW mendefinisikanOfficeArtFConnectorRulesebagai $F012
Versi 2.88.30
Diubah
- Record leaf SpContainer OfficeArt yang tidak dikenali kini round-trip. File .xls buatan Excel umum menyematkan leaf Fbt seperti
msofbtClientTextbox($F00D),OfficeArtFPSPL($F11D), danOfficeArtUDefProp($F122) di dalam setiap SpContainer shape. v2.88.30 menangkap leaf level-shape yang tidak dikenal sebagaiTMsoFbtUnknowndan memancarkannya kembali sesuai urutan parse di antara shapeClientAnchordan markermsofbtClientDataberbadan nol di akhir - Cakupan dan tindak lanjut. Leaf drawing-level lain yang tidak dikenal tetap ditunda; kasus solver-container connector-rule ditangani oleh v2.88.31. Bentuk container yang tidak dikenal, seperti
msofbtClientData($F011) yang digunakan sebagai container alih-alih marker saudara, tetap menjadi audit-round Slice 3
Versi 2.88.29
Ditambahkan
- Perilaku swallow-all FtLbsData membatasi cakupan. Kasus
$0013yang sudah ada menimpaRecLen := Len - offsuntuk menyerap semua byte setelah header FtLbsData ke blobFObjRec_LBSData, sehingga subrecord yang muncul SETELAH FtLbsData (biasanya hanya FtEnd) tetap round-trip melalui mekanisme itu tanpa perubahan. Integrasi FObjTailRaw baru secara khusus menargetkan celah sebelum FtLbsData tempat FtMacro dan ObjLinkFmla biasanya berada. Combo / list box yang baru dibuat melalui Drawing API memilikiFObjTailRawkosong → output byte-identical dengan v2.88.28
Dihapus
- Subrecord OBJ tidak dikenal pada ComboBox dan ListBox kini round-trip. TMSOShapeComboBox.ParseObj dan TMSOShapeListBox.ParseObj sudah mengurai FtSbs ($000C), FtSbsFmla ($000E), dan FtLbsData ($0013) secara bertipe ke field khusus, tetapi subrecord lain dari file sumber (FtMacro $0004, ObjLinkFmla, FtNts $000D, dll.) yang muncul antara CMO dan FtLbsData diam-diam dibuang pada case fall-through. v2.88.29 menambahkan else-branch yang sama seperti Picture v2.88.28, menangkap header 4-byte + body subrecord tidak dikenal ke
FObjTailRaw. Kedua metode AddObj memancarkan byte yang ditangkap antara body CMO dan subrecord FtSbs agar sesuai urutan subrecord spesifikasi BIFF8
Versi 2.88.28
Ditambahkan
- Pola koeksistensi bertipe + mentah. Berbeda dari PictureFrame (v2.88.27) yang memakai swap if/else antara emit bertipe dan mentah, Picture menggabungkan keduanya: field bertipe mempertahankan permukaan API (pemanggil tetap dapat menyesuaikan
ftCfValuedll.), sementara tail mentah hanya mempertahankan byte yang tidak dikenal. Picture yang baru dibuat melalui Drawing API memilikiFObjTailRawkosong, sehingga output byte-identical dengan v2.88.27
Dihapus
- Subrecord OBJ tidak dikenal pada shape Picture kini round-trip. TMSOShapePicture.ParseObj sudah mengurai FtCf ($0007), FtPioGrbit ($0008), dan FtPictFmla ($0009) secara bertipe ke field khusus, tetapi subrecord lain dari file sumber (FtMacro $0004, FtNts $000D, dll.) diam-diam dibuang pada case fall-through. v2.88.28 menambahkan else-branch yang menambahkan header 4-byte + body lengkap subrecord tidak dikenali ke
FObjTailRaw; TMSOShapePicture.AddObj lalu memancarkan byte tersebut verbatim setelah output subrecord bertipe dan sebelum marker FtEnd. Objek picture file sumber dengan macro hook bertahan saat disimpan ulang
Versi 2.88.27
Ditambahkan
- Round-trip subrecord trailing OBJ diperluas ke shape PictureFrame. TMSOShapePictureFrame.AddObj sebelumnya hanya memancarkan subrecord legacy hardcoded FtCf ($0007, body $FFFF) dan FtPioGrbit ($0008, body $0000) antara CMO dan FtEnd. Untuk picture frame yang baru dibuat, kode baru tetap memancarkan default tersebut; untuk picture frame yang diurai dari .xls sumber, byte
FObjTailRawyang ditangkap dipancarkan verbatim sebagai gantinya, mempertahankan konten FtPictFmla / FtCf non-default / FtPioGrbit non-default dari file sumber di seluruh siklus penyimpanan
Diperbaiki
- Catatan investigasi — Flush mengoreksi sz otomatis.
TMsoShapeContainer.Flushmenulis ulang header ukuran record Obj saat commit melaluiData.SetWord(Data.DataLength - 4, 2), yang berarti nilai hardcodedsz := $1Ayang sudah bertahun-tahun ada dalam implementasi AddObj HotXLS ternyata bukan bug spesifikasi — Flush mengoreksinya otomatis. v2.88.27 tetap menghitung sz secara akurat demi kejelasan source-code, tetapi perilaku runtime tidak berubah dari perspektif itu
Versi 2.88.26
Ditambahkan
- Round-trip subrecord trailing OBJ diperluas ke shape Chart dan CheckBox. v2.88.25 memperkenalkan preservasi byte mentah untuk byte antara CMO ($0015) record Obj dan marker FtEnd ($0000), tetapi hanya TMSOShapeTextBox.AddObj yang memancarkan tail yang ditangkap. Rilis ini menerapkan pola yang sama ke TMSOShapeChart.AddObj dan TMSOShapeCheckBox.AddObj — keduanya berbagi struktur emit sederhana "CMO + FtEnd" milik TextBox, sehingga perubahan menjadi substitusi variabel satu baris (
sz := $1A + Word(Length(FObjTailRaw))) plus loop byte verbatim sebelum marker FtEnd
Diubah
- Subrecord trailing Chart (misalnya FtMacro untuk macro objek chart tertanam) dan subrecord status checkbox (FtCbls + FtCblsData + ObjLinkFmla, MS-XLS §2.5.140-141 / §2.5.149) kini bertahan pada save/reload HotXLS. Chart dan checkbox yang baru dibuat melalui Drawing API tetap memancarkan CMO+FtEnd default 26-byte (byte-identical dengan v2.88.25), sehingga pemanggil yang ada tidak melihat perubahan perilaku. Shape Picture / ComboBox / ListBox / PictureFrame memiliki emit subrecord bertipe dinamis sendiri yang bertentangan dengan FObjTailRaw — integrasinya ditunda ke commit mendatang
Versi 2.88.25
Ditambahkan
- Capture basis generik, emit hanya TextBox (slice pertama R5-3). TMsoShapeContainer.ParseObj kini menangkap rentang byte antara akhir body CMO dan marker FtEnd ke field internal baru
FObjTailRaw: TBytes; TMSOShapeTextBox.AddObj menyisipkan byte tersebut antara emit CMO dan marker FtEnd, dengan ukuran header record Obj disesuaikan. Komentar yang baru dibuat (tanpa byte sumber) mempertahankan output byte-identical dengan v2.88.24. Kelas shape lain (Picture / CheckBox / ComboBox / ListBox / Chart) mewarisi capture tetapi override AddObj bertipe mereka mempertahankan perilaku legacy "synthesise from scratch" — emit raw-bytes untuk tipe shape tersebut ditunda ke commit mendatang
Diubah
- Subrecord trailing record OBJ kini dipertahankan di seluruh siklus penyimpanan untuk komentar. Record Obj BIFF8 ($005D) merangkai urutan subrecord bertipe setelah CMO wajib ($0015), diakhiri marker FtEnd ($0000), sesuai MS-XLS §2.4.181. Untuk shape Note (komentar), blok trailing biasanya berupa FtNts 26-byte (§2.5.149) yang membawa GUID dan flag fSharedNote — keduanya penting saat Excel kemudian menggabungkan komentar antar pengguna dalam workbook bersama. HotXLS sebelumnya membuang setiap byte setelah CMO saat membaca dan hanya memancarkan FtEnd kosong saat menulis, sehingga FtNts dari file sumber hilang pada setiap penyimpanan ulang HotXLS
Versi 2.88.24
Ditambahkan
- Preservasi byte mentah di TMSOShapeTextBox. ParseTXO menangkap byte Continue setelah teks secara verbatim ke field internal baru
FFormatRunsRaw: TBytes; Store memancarkannya kembali sebagai Continue formatting-runs dan menyesuaikan headercbRunsrecord dasar agar cocok. Komentar yang baru dibuat (melaluiAddComment) mempertahankan output single-default-run legacy tanpa perubahan, sehingga output byte-identical dipertahankan untuk workbook default. Akses Excel-API bertipe ke format run individual masih ditunda — API komentar single-WideString yang ada tidak berubah
Diubah
- Komentar sel multi-font dan multi-color kini round-trip. Blok formatting-runs record TXO BIFF8 (
rgTxoRuns+TxOLastRunsesuai MS-XLS §2.5.272) membawa override font dan warna per run yang memberi komentar gaya rich-text. HotXLS sebelumnya membuang seluruh blok saat membaca dan memancarkan satu run default kosong + LastRun saat menulis — meratakan setiap "Important!" yang disorot merah, setiap kata bold di dalam teks komentar, menjadi pemformatan default seragam pada setiap penyimpanan ulang HotXLS
Versi 2.88.23
Ditambahkan
- Tiga properti TXLSPageSetup baru.
PrintResolution: LongWord,PrintVResolution: LongWord, danCopies: LongWord— semuanya default ke nilai yang sebelumnya di-hardcode writer (600 / 600 / 1) sehingga workbook yang tidak pernah menyentuhnya menghasilkan output byte-identical dengan v2.88.22. Setter membatasi padaHigh(Word)sehingga nilai pemanggil yang terlalu besar tidak dapat wrap saat emit
Dihapus
- Resolusi cetak dan jumlah salinan kini round-trip — record Setup kini tercakup penuh. Tiga field Word record Setup (
iRespada offset 12,iVRespada offset 14,iCopiespada offset 32, sesuai MS-XLS §2.4.257) membawa pilihan Excel "Page Setup → Page → Print quality" dan "Number of copies". HotXLS sebelumnya membuang ketiganya saat membaca dan memancarkan nilai hardcoded (600 DPI / 600 DPI / 1 salinan), sehingga resolusi atau jumlah salinan yang diubah pengguna diam-diam kembali pada setiap penyimpanan ulang HotXLS
Diperbaiki
- Pekerjaan round-trip record Setup selesai. Dengan perbaikan ini setiap field user-visible dari record Setup BIFF8 ($00A1) round-trip end to end — ukuran kertas / skala / nomor halaman pertama / lebar dan tinggi fit-to-page / orientasi / urutan cetak / hitam-putih / draft / komentar cetak / error sel / resolusi / salinan. Hanya dua bit petunjuk spesifikasi grbit (
fNoPls,fNoOrient) yang tetap tidak diekspos, keduanya ditulis HotXLS sebagai nol sesuai perilaku default Excel
Versi 2.88.22
Ditambahkan
- Dua properti TXLSPageSetup baru.
UseFirstPageNumber: Booleanmencerminkan bit (False = "Auto", default);FirstPageNumber: Integermembawa nilai iPageStart (default 1, dibatasi setter ke rentang signed-Word spesifikasi -32768..32767). HotXLS melakukan round-tripiPageStartsecara verbatim bahkan saatUseFirstPageNumberFalse, sehingga beralih antara Auto dan custom di Excel mempertahankan nilai terakhir yang diketik pengguna
Dihapus
- "First page number" kustom Page Setup kini round-trip. Record Setup BIFF8 membawa pilihan Page Setup → Page → "First page number" workbook sebagai dua field terkait: grbit bit 7 (
fUsePage) memilih antara default "Auto" Excel dan nomor halaman awal eksplisit, dan Word bertanda pada offset 4 (iPageStart) menyimpan nilai kustom itu, sesuai MS-XLS §2.4.257. HotXLS sebelumnya membuang keduanya saat membaca dan memancarkaniPageStart = 1dengan bit clear, sehingga "First page number: 100" yang diketik pengguna diam-diam kembali ke "Auto" pada setiap penyimpanan ulang HotXLS
Versi 2.88.21
Ditambahkan
- Properti Boolean TXLSPageSetup.PrintNotesAtEnd baru. Default ke
Falsesesuai default UI Excel. Reader dan writer melakukan round-trip bit secara verbatim (bahkan saatPrintNotes = False), sehingga workbook dengan komentar yang sementara dinonaktifkan mempertahankan preferensi "at end of sheet" ketika pengguna mengaktifkannya kembali — meniru perilaku Excel sendiri
Dihapus
- Pilihan "Print comments at end of sheet" kini bertahan pada siklus penyimpanan. grbit bit 9 (
fEndNotessesuai MS-XLS §2.4.257) pada record Setup BIFF8 membawa perbedaan dropdown Page Setup → Sheet → Comments antara "As displayed on sheet" (default) dan "At end of sheet". HotXLS sudah melakukan round-trip PrintNotes (bit 5) untuk mengontrol apakah komentar dicetak, tetapi bit 9 dibuang saat membaca dan dipancarkan sebagai nol saat menulis — sehingga pilihan pengguna "At end of sheet" diam-diam kembali ke "As displayed on sheet" pada setiap penyimpanan ulang HotXLS
Versi 2.88.20
Diubah
- Pilihan workbook "Set precision as displayed" kini round-trip. Record CalcPrecision BIFF8 ($000E) membawa checkbox level workbook File → Options → Advanced → "Set precision as displayed" sesuai MS-XLS §2.4.35. HotXLS sebelumnya tidak memiliki case dispatcher untuk $000E dan TXLSWorkbook.StorePrecision memancarkan hardcoded
1(= presisi penuh dipertahankan). Pilihan pengguna "Set precision as displayed" diam-diam kembali ke "full precision" pada setiap penyimpanan ulang HotXLS — menyembunyikan maksud sengaja pengguna bahwa recalc berikutnya harus memotong nilai sel secara permanen ke tempat desimal terformatnya
Diperbaiki
- Properti Boolean TXLSWorkbook.UseFullPrecision baru. Default ke
True(sesuai default BIFF8 dan default UI Excel berupa unchecked). Mengaturnya keFalsemencerminkan mencentang opsi destruktif "precision as displayed" — HotXLS sendiri tidak memotong nilai sel apa pun pada round-trip, tetapi flag kini ditulis kembali dengan setia sehingga recalc Excel berikutnya menghormatinya. Dengan perbaikan ini, setiap record kalkulasi BIFF8 (CalcCount / CalcMode / CalcPrecision / CalcDelta / CalcIter / CalcSaveRecalc) round-trip end to end
Versi 2.88.19
Ditambahkan
- Properti Boolean TXLSWorkbook.RecalcOnSave baru. Default ke
True(sesuai default UI Excel dan nilai hardcoded legacy), sehingga workbook yang tidak pernah menyentuh properti ini mempertahankan output byte-identical dengan v2.88.18. Setter menerima Boolean apa pun; reader menormalkan byte sumber non-nol apa pun menjadiTrue
Diubah
- Checkbox "Recalculate workbook before saving" kini round-trip. Record CalcSaveRecalc BIFF8 ($005F) membawa Boolean workbook File → Options → Save → "Recalculate workbook before saving", sesuai MS-XLS §2.4.37. HotXLS sebelumnya tidak memiliki case dispatcher untuk $005F dan StoreCalculationSettings memancarkan hardcoded
1— sehingga pilihan pengguna untuk menonaktifkan "recalc on save" diam-diam aktif kembali pada setiap penyimpanan ulang HotXLS, yang benar-benar penting untuk workbook manual-calc saat pengguna sengaja membekukan nilai sel di disk
Versi 2.88.18
Ditambahkan
- Tiga properti TXLSWorkbook baru.
EnableIteration: Booleanmencerminkan checkbox;MaxIterations: LongWordadalah batas iterasi (dibatasi setter ke rentang legal spesifikasi 1..32767);MaxIterationChange: Doubleadalah delta konvergensi (input negatif kembali ke default spesifikasi 0.001). Default sesuai nilai yang sebelumnya di-hardcode writer, sehingga workbook yang tidak pernah menyentuh properti baru menghasilkan output byte-identical dengan v2.88.17
Diubah
- Pengaturan kalkulasi iteratif (aktifkan + max iterations + max change) kini round-trip. Record BIFF8 CalcIter ($0011), CalcCount ($000C), dan CalcDelta ($0010) bersama-sama membawa trio opsi Excel "Enable iterative calculation" (File → Options → Formulas), sesuai MS-XLS §2.4.33 / §2.4.31 / §2.4.32. Sebelumnya ketiganya tidak memiliki case dispatcher, dan StoreCalculationSettings memancarkannya dengan nilai hardcoded (off / 100 / 0.001). Loop 1000-iterasi yang dikonfigurasi pengguna dengan delta konvergensi 0.0001 diam-diam direset ke "iteration off, 100, 0.001" pada setiap penyimpanan ulang HotXLS — merusak formula circular-reference dan model keuangan yang sensitif terhadap konvergensi
Versi 2.88.17
Ditambahkan
- Mode kalkulasi workbook (Manual / Automatic / Auto except tables) kini round-trip. Record CalcMode BIFF8 ($000D) membawa pilihan level workbook "Formulas → Calculation Options" sesuai MS-XLS §2.4.36. HotXLS sebelumnya sama sekali tidak memiliki case dispatcher untuk $000D, sehingga nilai file sumber dibuang saat dimuat, dan writer selalu memancarkan hardcoded
$0001(Automatic). Mode Manual yang dipilih pengguna diam-diam kembali ke Automatic pada setiap penyimpanan ulang HotXLS — buruk untuk workbook besar yang sengaja diatur Manual demi performa. Handler ParseCalcMode baru menyimpan nilai sumber pada workbook dan StoreCalculationSettings kini memancarkan nilai tersimpan, bukan konstanta - Properti TXLSWorkbook.CalculationMode baru. Properti read-write
LongWordyang menerimaxlCalcManual(0),xlCalcAutomatic(1, default), atauxlCalcAutomaticExceptTables(0xFFFF) — tiga konstanta baru diekspor darilxTNC.inc. Setter membatasi nilai tidak dikenal ke default spesifikasi sehingga file sumber korup tidak dapat meninggalkan workbook dalam status tidak terdefinisi. Kode yang sudah ada dan tidak pernah menyentuh properti ini mempertahankan default legacy "Automatic", sehingga output sebelumnya tetap byte-identical untuk workbook default
Versi 2.88.16
Ditambahkan
- Properti TXLSPageSetup.PrintCellErrors baru. Properti read-write
LongWordyang menerimaxlPrintErrorsDisplayed(0, default),xlPrintErrorsBlank(1),xlPrintErrorsDash(2), atauxlPrintErrorsNA(3) — empat konstanta baru diekspor darilxTNC.inc. Pemanggil PageSetup yang sudah ada dan tidak pernah menyentuh properti ini mempertahankan default ("displayed"), sehingga output cetak legacy tidak berubah
Dihapus
- Pilihan Page Setup "Cell errors as" kini bertahan pada siklus penyimpanan. Record Setup BIFF8 ($00A1) menyimpan dropdown Page Setup → Sheet tab "Cell errors as: displayed / <blank> / <dash> / <N/A>" ke bit 10-11 word grbit sebagai
iErrors, sesuai MS-XLS §2.4.257. HotXLS sebelumnya membuang bit ini saat membaca dan memancarkannya sebagai nol saat menulis, sehingga workbook yang dikonfigurasi pengguna untuk mencetak#DIV/0!sebagai#N/Adiam-diam kembali ke "displayed" setelah setiap penyimpanan ulang HotXLS. Reader kini mendekodeiErrorske properti baruTXLSPageSetup.PrintCellErrorsdan writer membangun ulang field darinya
Versi 2.88.15
Ditambahkan
- Enam properti TMSOShapeTextBox baru untuk styling komentar eksplisit.
HAlignment,VAlignment,Rotation,LockText,JustLastLine, danSecretEditdiekspos sebagai properti read-write pada setiap shape komentar;AddCommentdefault ke left+top+horizontal+unlocked sehingga pemanggil yang tidak menyentuhnya mempertahankan tampilan sebelumnya
Dihapus
- Alignment dan orientasi komentar sel kini round-trip. Record dasar TXO BIFF8 ($01B6) membawa lima flag bertipe dalam word
grbit(hAlignment, vAlignment, fLockText, fJustLast, fSecretEdit) plus wordrotterpisah untuk orientasi teks, sesuai MS-XLS §2.4.329. Reader sebelumnya membuang semuanya dan writer mematokgrbitke hardcoded0x0012(left + top) dengan rotasi selalu 0, sehingga setiap penyimpanan mereset komentar yang centered atau rotated kembali ke left+top+horizontal tanpa melihat sumber. Reader kini mendekode field bertipe saat load dan writer menyusungrbitdarinya, sehingga layout bertahan pada perjalanan save/reload
Diperbaiki
- Writer TXO kini menata reserved4 / reserved5 sesuai batas field spesifikasi. Kode sebelumnya memancarkan offset 2-9 dari record dasar sebagai dua penulisan long (rot + reserved4 lalu reserved5); writer kini memecahnya menjadi
Wordrot,Wordreserved4,Longreserved5 — isi byte tidak berubah (tetap semua nol untuk shape Note) tetapi struktur source kini sesuai offset field MS-XLS §2.4.329, membuat perbaikan TXO berikutnya lebih sulit salah sejajar
Versi 2.88.14
Diperbaiki
- Offset TXO cchText dikoreksi — perbaikan panjang komentar v2.88.13 kini benar-benar berjalan. Rilis sebelumnya memperkenalkan sanity check untuk record dasar TXO dengan membaca
cchTextpada offset 8, tetapi MS-XLS §2.4.329 menempatkancchTextpada offset 10 (setelah grbit, rot, dan 6 byte reserved / controlInfo). Offset 8 berada di dalam long reserved5, yang selalu nol pada objek berbentuk Note, sehingga setiap komentar diam-diam masuk ke fallback defensif yang hanya memulihkan perilaku pra-v2.88.13. Perbaikan ini mengoreksi offset ke 10 — komentar panjang kini benar-benar disambung melintasi record Continue dan komentar pendek tidak lagi mengambil padding trailing. Tidak ada perubahan perilaku lain di luar yang seharusnya selalu dikirim oleh v2.88.13
Versi 2.88.13
Diubah
- Komentar sel panjang kini dibaca kembali dengan panjang penuh. Record TXO BIFF8 ($01B6) memecah body teksnya melintasi record dasar dan satu atau beberapa record Continue, dengan jumlah karakter dipublikasikan dalam record dasar pada offset 8 sebagai
cchText. Reader komentar sebelumnya melewati record dasar sepenuhnya, memperlakukan DataList[1] sebagai seluruh teks, dan berhenti di sana — sehingga komentar lebih panjang dari sekitar 4100 karakter wide diam-diam terpotong, dan komentar lebih pendek yang record Continue-nya membawa padding trailing mengambil sampah di akhir. Reader kini memakaicchTextsebagai jumlah karakter otoritatif, menelusuri setiap segmen Continue sesuai MS-XLS §2.4.329 (break rgb berada pada batas karakter sehingga tidak perlu pembukuan karakter parsial), dan berhenti segera setelah budget terpenuhi sehingga blok formatting-runs yang mengikuti teks tidak pernah bocor ke string. Komentar dengan record dasar korup / hilang tetap fallback ke jalur legacy "all remaining bytes"
Versi 2.88.12
Diubah
- String cache lebih panjang dari ~4100 karakter dari formula yang mengembalikan string kini round-trip melintasi record Continue. v2.88.11 menghubungkan sisi baca record String BIFF8 ($0207) tetapi hanya mengonsumsi body record pertama, sehingga string cache yang byte UCS-2-nya melampaui batas BIFF 8224-byte dan spill ke satu atau beberapa record Continue ($003C) diam-diam terpotong. Handler kini menelusuri seluruh DataList level dispatcher: membaca cch dan fHighByte dari record dasar, menyalin body yang muat di sana, lalu menggabungkan setiap segmen Continue berikutnya sebagai byte mentah sesuai jaminan batas karakter MS-XLS §2.5.293 — XLUnicodeString tidak pernah memancarkan fHighByte ulang di tengah string. Setiap segmen dibatasi oleh budget karakter tersisa sehingga Continue liar yang terlalu besar tidak dapat membuat hasil lebih panjang dari cch. String satu record (kasus umum) memakai fast path yang persis sama seperti sebelumnya
Versi 2.88.11
Diperbaiki
- Formula yang mengembalikan string kini round-trip teks cache yang dihitung Excel. Rilis sebelumnya mencakup varian number, boolean, error, dan empty dari cache FormulaValue BIFF8 (MS-XLS §2.5.133), tetapi membiarkan varian string pada daftar tugas karena nilai cache-nya berada dalam record String terpisah ($0207) yang langsung mengikuti record Formula. ParseFormula kini mengingat koordinat sel saat melihat Formula varian string, dan handler ParseString baru mendekode record $0207 trailing sesuai MS-XLS §2.4.268 lalu merutekan WideString ke
FCachedFormulaValue.GetCellValuekini dapat fallback ke teks yang dihitung Excel setiap kali evaluator HotXLS tidak dapat mereproduksinya. Reset defensif di bagian atas ParseFormula membuang pending anchor yang basi sehingga file sumber malformed dengan record String hilang tidak dapat salah merutekan record berikutnya. Record lebih panjang dari 8224 byte yang overflow ke chunk Continue masih fallback ke output evaluator sebagai batasan yang diketahui
Versi 2.88.10
Ditambahkan
- Record Formula BIFF8 kini round-trip nilai cache yang dihitung Excel. ParseFormula sebelumnya melewati payload FormulaValue 8-byte pada offset 6 sepenuhnya, sehingga hasil cache setiap formula dalam .xls yang dimuat (number, boolean, error, empty) dibuang dan HotXLS harus mengevaluasi ulang setiap sel melalui formula engine sendiri. Saat engine itu tidak dapat menyamai Excel (fungsi XLM tidak didukung, tautan eksternal rusak, formula yang belum diimplementasikan engine) sel diam-diam menjadi blank atau zero. Reader kini mendekode empat varian numeric / boolean / error / empty sesuai MS-XLS §2.5.133 dan menyimpannya pada field baru
TXLSCellRef.FCachedFormulaValue;GetCellValuefallback ke cache itu hanya saat evaluator gagal, sehingga formula yang baru dibuat tetap melalui evaluasi seperti sebelumnya. Varian string tetap ditunda ke evaluator karena parser record String trailing ($0207) belum terhubung
Versi 2.88.9
Diperbaiki
- Record Formula BIFF8 dengan nilai yang tidak dapat diselesaikan kini menandai fAlwaysCalc, bukan bit reserved1. Saat evaluator HotXLS tidak dapat menghitung formula pada waktu penyimpanan, writer dulu menetapkan
grbit = 0x0002— bit 1, yang MS-XLS §2.4.127 cadangkan dan instruksikan reader untuk abaikan. Excel pun mengabaikannya, memperlakukan nilai cache placeholder 0 sebagai otoritatif, dan diam-diam menampilkan 0 alih-alih menghitung ulang. Writer kini menetapkangrbit = 0x0001(fAlwaysCalc, bit 0), sehingga Excel menjalankan ulang formula pada recalc berikutnya dan sel menampilkan hasil yang benar
Versi 2.88.8
Diperbaiki
- PageSetup.PrintTitleColumns / PrintTitleRows kini raise pada input buruk. Mengatur salah satu properti dengan string rentang malformed (apa pun yang tidak dapat diurai
ColDiapasonToValues/RowDiapasonToValues) sebelumnya membuang assignment secara diam-diam — workbook mempertahankan rentang Print_Titles yang sudah ada, atau tidak ada rentang sama sekali, dan pemanggil tidak punya cara mengetahui ada yang salah. Setter kini raiseException.Createdengan pesan deskriptif yang menyebut nilai bermasalah, sesuai gaya raise yang sudah ada pada jalur invalid-indexTXLSRange
Versi 2.88.7
Ditambahkan
- Catatan errata audit spesifikasi BIFF8 round 2 ditambahkan. Pemeriksaan ulang batas field [MS-XLS] memperjelas dua temuan yang ditandai P2 dalam laporan asli (
dev-notes/XLS-BIFF8-Spec-Audit-Round2.md) bukan bug nyata: bit-15 yang disetel dalam flag riwayat BOF $000080C9 milik field verXLHigh (bit 14-17, nilai 2 = "Excel 2002"), bukan tail reserved1 (bit 19-31); dan penggunaan PtgExp awal oleh ParseFormula untuk mendeteksi formula shared / array sesuai yang diimplikasikan spesifikasi dan terdisambiguasi dengan benar melalui record ShrFmla / Array berikutnya. Kedua item kini dianotasi sebagai retracted
Dihapus
- Field Row miyRw kini tetap dalam rentang spesifikasi MS-XLS. Versi Excel pra-BIFF8 mengodekan "use the workbook default row height" dengan meng-OR bit 15 ke miyRw, dan HotXLS membawa idiom itu ke writer BIFF8 meskipun MS-XLS §2.4.221 membatasi miyRw pada 8192 twips. Excel modern memancarkan 255 polos (default 12.75 pt) dalam kasus yang sama dan memakai bit grbit fUnsynced untuk memberi sinyal override manual, sehingga hack bit-15 membuat output HotXLS berbeda dari file .xls otoritatif (nilai 32 959 = 0x80FF untuk "default" secara teknis out-of-spec). Writer kini membuang OR dan menulis 255 langsung; reader tetap menghapus bit 15 saat masuk demi kompatibilitas mundur dengan file HotXLS v2.88.6 dan sebelumnya plus generator pihak ketiga langka yang meniru idiom BIFF5
Versi 2.88.6
Diperbaiki
- Macro sheet dan modul VBA kini mempertahankan slot ordinal BoundSheet8 mereka. Reader sebelumnya membuang record BoundSheet8 yang field
dt-nya 1 (macro sheet) atau 6 (modul VBA), sehingga koleksi Sheets HotXLS kekurangan entri tersebut. XTI cross-reference apa pun dalam ExternSheet yang menunjuk ke posisi sheet setelah macro sheet menurut urutan file kemudian terselesaikan ke worksheet HotXLS yang salah setelah SaveAs. Reader kini menambahkan sheet placeholder untuk setiap record BoundSheet8 dan menyimpan bytedtmentah pada properti baruSheet.SheetTypeRaw; writer memancarkan kembali byte asli. Record BOF substream macro ($0040) juga diperlakukan sebagai substream worksheet selama parsing sehingga sel di dalam macro sheet dipertahankan, bukan diam-diam terserap ke sheet sebelumnya
Versi 2.88.5
Dihapus
- Record Row BIFF8 kini round-trip fCollapsed, fExAsc, fExDes, dan fPhonetic. Sebelumnya reader membuang fCollapsed (grbit bit 4) — writer menginferensikannya dari transisi outline-level pada baris tetangga, yang salah mengklasifikasikan baris yang file sumber tetapkan sebagai collapsed secara eksplisit atau tandai sebagai boundary. Tiga bit tinggi (fExAsc pada 28, fExDes pada 29, fPhonetic pada 30) juga tidak pernah dibaca, dan selalu dipancarkan sebagai nol karena writer memotong grbit 4-byte menjadi satu slot ixfe 16-bit. Reader kini mengonsumsi keempat bit sesuai MS-XLS §2.4.221 dan menyematkan fCollapsed sebagai eksplisit sehingga inferensi sisi writer tidak lagi menimpa nilai yang ditegaskan Excel. Writer mengemas ExAsc / ExDes / Phonetic ke bit 12-14 dari Word ixfe, masking ixfe ke rentang 12-bit yang diizinkan spesifikasi untuk mencegah indeks XF bertabrakan dengan flag baru. Efek samping round-trip: border thick-top / medium-bottom yang digerakkan oleh hint ExAsc / ExDes kini bertahan pada SaveAs HotXLS, dan visibilitas info phonetic pada sheet Jepang berhenti direset pada setiap penyimpanan
Versi 2.88.4
Diperbaiki
- Bit fPaged Window2 BIFF8 kini hanya menandai sheet aktif. Rilis sebelumnya menyetel
fPaged(MS-XLS §2.4.346 bit 10) pada setiap sheet terlihat, yang membuat output HotXLS berbeda dari yang ditulis Excel sendiri (menurut spesifikasi bit itu berarti "this sheet is currently displayed in the workbook window", jadi hanya substream sheet aktif yang harus membawanya). Reader Excel tetap fallback keWindow1.itabCuruntuk mengidentifikasi sheet aktif sebenarnya, sehingga penyalahgunaan ini ditoleransi, tetapi Apache POI strict mode dan tooling lain yang mempercayaifPagedsebagai sinyal primer kini melihat sheet yang benar ditandai
Versi 2.88.3
Dihapus
- Zoom Window2 BIFF8 dan warna gridline kini round-trip. Rilis sebelumnya membuang field record WINDOW2 setelah offset 6 saat membaca dan memancarkan nol hard-coded saat menulis, sehingga zoom sheet yang disimpan Excel (75 persen, 125 persen, dll.) dan kustomisasi warna gridline kembali ke default setelah SaveAs HotXLS. Reader kini mengonsumsi
icvHdr,wScaleSLV, danwScaleNormalsesuai MS-XLS §2.4.346: zoom active-view mengisiSheet.Zoomdan nilai opposite-view masuk ke slot cache sehingga berpindah antara Normal dan Page Break Preview di Excel memulihkan zoom sebelumnya. Writer memancarkanSheet.Zoomaktif di slot tampilan yang sesuai dan nilai cache di slot lainnya, plus indeks warna gridline yang dipertahankan
Versi 2.88.2
Diperbaiki
- Opcode record HFPicture BIFF8 diperbaiki. File .xls yang disimpan kini memancarkan record gambar latar header / footer dengan
rt = 0x0866yang benar sesuai MS-XLS §2.4.138. Rilis sebelumnya memakai0x086C— opcode untuk CellWatch — sehingga Excel mencoba mengurai OfficeArt BLIP tertanam sebagai referensi watched-cell dan diam-diam membuang gambar (kadang menolak membuka workbook saat byte gambar tertanam kebetulan melanggar struktur 16-byte yang diharapkan CellWatch). Workbook yang melakukan round-trip gambar header / footer melalui HotXLS kini mempertahankan gambar tetap utuh
Versi 2.88.1
Diperbaiki
- Opcode record Theme BIFF8 diperbaiki. File .xls yang disimpan kini memancarkan record Theme dengan
frtHeader.rt = 0x0896yang benar sesuai MS-XLS §2.4.326. Rilis sebelumnya memakai0x0892— opcode untuk StyleExt — sehingga Excel menafsirkan payload tema OOXML tertanam sebagai ekstensi style sel dan diam-diam fallback ke tema Office bawaan, menghilangkan warna tema yang dikustomisasi saat round-trip workbook melalui HotXLS
Versi 2.88.0
Ditambahkan
- Paket .xlsx yang disimpan kini menyertakan bagian
xl/theme/theme1.xml. styles.xml selalu memancarkan referensi<color theme="N"/>untuk warna font / fill / border / tab apa pun yang diatur melalui jalur theme-index (dan untuk warna tema yang dibawa dari input .xlsx yang diurai), tetapi tidak ada bagian tema yang ditulis, sehingga referensinya menggantung. Excel menoleransi penghilangan itu dengan fallback diam-diam ke tema bawaan “Office”, tetapi Office File Validation menandai setiap referensi sebagai “theme part missing” dan Apache POI strict mode menolak workbook pada lookup pertama.SaveAskini memancarkan tema Office (2007+) kanonis: skema warna 12-slot (systemwindowText/window, empat warna default Excel, enam aksen, dua warna hyperlink), skema font Calibri Light / Calibri, skema format minimum-valid (masing-masing tiga entri fill / line / effect / background-fill sesuaiCT_StyleMatrix).[Content_Types].xmlmendapatkanOverrideyang sesuai;xl/_rels/workbook.xml.relsmendapatkan relationshiptheme/theme1.xmlyang mendarat di ekor rentang rid, sehingga offsetXlsxFirstExternalLinkRidyang sudah ada untuk sheets / sst / styles / vba / externalLinks tidak berubah - Assignment langsung
Sheet.Name := '...'kini juga melakukan sanitise dan dedupe. Round 3 (v2.54.1) menambahkan enforcement aturan penamaan Excel diTXLSXSheets.Add(AName), tetapi setter propertiTXLSXWorksheet.Namemasih berupawrite FNamementah, sehingga jalur mutasi paling umum yang tidak tercakup round itu —lxXlsxExport.pas:122 Target.Name := Source.Namedalam round-trip XLS → XLSX — membiarkan nama apa pun yang kebetulan dibawa sumber BIFF8 lewat (karakter terlarang: \ / ? * [ ], panjang > 31, tanda kutip tunggal di sekitar nama, reservedHistory, duplikat case-insensitive dari sheet yang ada). Setter properti kini merutekan melalui metodeSetNamebaru yang mengulang logika dedupXlsxSanitizeSheetName+ sufiks' (N)'yang sama (case-insensitive, exclude-self) terhadap koleksi sheet workbook induk. Worksheet terlepas (belum ada back-pointerFWorkbook) melewati langkah dedup dan hanya melakukan sanitise —TXLSXSheets.Addakan menegakkan keunikan saat sheet terpasang. Idempotent pada nama yang sudah valid sehinggaFSheets.Add(names[i])sisi reader tetap menjadi round-trip murni
Diperbaiki
- Cross-audit [MS-XLSX] round 4 — bagian tema + setter nama sheet. Dua perbaikan lanjutan yang menargetkan isu tersisa setelah round 1–3 (v2.51.0 / v2.52.0 / v2.54.1). Tidak ada yang merusak call site yang sudah ada; satu memperluas perilaku pada setter, yang lain menambahkan bagian baru yang selalu dipancarkan
Versi 2.87.4
Diubah
- Formula bersama XLS kini menulis body
ShrFmlayang valid. Output shared-formula BIFF8 kini menyertakan bytecUseyang wajib sebelum shared parsed formula, sehingga workbook yang disimpan denganUseSharedFormulastidak lagi menggeser stream token formula satu byte - Metadata style tabel dan filter XLS kini sesuai layout MS-XLS terbaru.
AddTablekini menulisLIST12sebagaiList12TableStyleClientInfo, menyetel flag AutoFilter tabel dan field dalamFeature11, serta memancarkan blokFeat11FdaAutoFilterkosong per kolom yang diharapkan Excel - Aturan BIFF8 CF12 Data Bar / Color Scale / Icon Set kini menghilangkan payload DXF yang terlarang. HotXLS mengikuti aturan MS-XLS bahwa tipe CF12 ini harus membawa blok DXF kosong, sambil mempertahankan pengaturan aturan aktualnya dalam tail khusus jenis CF12
Versi 2.87.3
Dihapus
- Metadata tabel worksheet XLS kini mengikuti layout tabel
Feature11MS-XLS. OutputAddTableuntuk file .xls kini menulis header tabelFeatHdr11plus payloadFeature11TableFeatureType/Feat11FieldDataItem, menghapus marker tabel legacy$0867 FeatHdr, dan menyimpan nama tabel serta kolom sebagai nilaiXLUnicodeString
Diperbaiki
- Readback tabel XLS kini memahami layout field yang benar menurut spesifikasi. HotXLS mengurai nama tabel, rentang, status totals-row, dan caption field
TableFeatureType, sambil tetap menyediakan fallback untuk record tabel lama yang dihasilkan HotXLS
Versi 2.87.2
Diperbaiki
- Record lanjutan XLS BIFF8 kini membawa panjang dasar yang benar. Record XLS berukuran besar yang dipecah writer kini memperbarui panjang record pertama menjadi 8224 byte, bukan membiarkan panjang oversized asli dalam header BIFF
- Tabel worksheet XLS besar kini memakai chunk
ContinueFrt11yang benar menurut spesifikasi. OutputAddTableyang lebar dengan payloadFeature11besar kini disimpan dengan record lanjutan$0875 ContinueFrt11dan dibuka ulang dengan metadata tabel tetap dipertahankan, sesuai layout [MS-XLS]Feature11/ContinueFrt11
Versi 2.87.1
Diubah
- Batas grid worksheet XLSX kini mencakup baris dan kolom Excel terakhir.
TXLSXRange,RCRange,EntireRow, danEntireColumnkini mengizinkan baris 1048576 dan kolom 16384 (XFD), sesuai batas nomor baris dan nomor kolom [MS-XLSX]. Sebelumnya clamp internal memakai maksimum berbasis nol, sehinggaXFD1048576dan rentang yang menyentuh baris terakhir atau kolom terakhir diam-diam dipotong ke baris/kolom sebelumnya
Diperbaiki
- Dokumentasi dan pengujian enkripsi XLSX kini sesuai jalur tulis yang diimplementasikan. Halaman bantuan dan suite regresi kini menyatakan bahwa
SaveAsEncryptedmenulis output ECMA-376 Standard Encryption untuk kata sandi yang tidak kosong, sementaraOpenEncryptedtetap raise untuk paket terenkripsi dan fallback untuk file .xlsx polos
Versi 2.87.0
Diperbaiki
- Penyimpanan XLSX terlindungi kata sandi kini bekerja (wave J phase 2, backlog #29).
TXLSXWorkbook.SaveAsEncrypted(FileName, Password)kini menulis file .xlsx nyata yang dilindungi ECMA-376 Standard Encryption (format Office 2007+). Pipeline lengkap [MS-OFFCRYPTO] §2.3.4 sudah tersedia: derivasi kata sandi SHA-1 50000-iterasi phase 1 + blok verifier AES-128 + enkripsi body paket AES-CBC + serializerEncryptionInfobiner kini digabungkan dengan empat stream metadata\\005DataSpacesphase 2 (Version / DataSpaceMap / DataSpaceInfo / TransformInfo) dan writer OLE Compound File Binary yang menaruh semuanya ke container CFB yang dapat dibuka Excel dengan kata sandi pengguna. Workflow: pemanggil memanggilSaveAsEncrypteddengan kata sandi tidak kosong → HotXLS menserialkan workbook ke zip .xlsx plaintext dalam memori → mengenkripsi via AES-128 CBC dengan salt 16-byte acak dan verifier baru → menulis output CFB melaluiStgCreateDocfile. Dibuka di Excel 2007+: memasukkan kata sandi → konten terbuka. Kata sandi salah: ditolak.OpenEncrypted(sisi decrypt) masih merupakan item backlog terpisah dan tetap raiseEXlsxEncryptionNotImplementedsaat diberi file terenkripsi
Versi 2.86.1
Ditambahkan
- XLSX Standard Encryption — fondasi kriptografi (wave J phase 1, backlog #29). Dua unit internal baru menghadirkan separuh cipher dan key-derivation dari jalur tulis ECMA-376 Standard Encryption.
lxAES.pasmembungkus AES Brian Gladman (ditautkan darithirdparty/Win32/aes*.obj+thirdparty/Win64/aes*.obj) dan mengekspos entry point enkripsi AES-128 ECB single-block dan AES-128 CBC.lxXlsxStdEncrypt.pasmengimplementasikan SHA-1 pure-Pascal (FIPS-180-4), derivasi kata sandi 50000-iterasi [MS-OFFCRYPTO] §2.3.4.10, blok verifier §2.3.4.7 (EncryptedVerifier+EncryptedVerifierHash), enkripsi body paket AES-CBC (prefiks ukuran LE 8-byte + zero-pad ke batas 16-byte + IV nol), dan serializerEncryptionInfobiner §2.3.4.6.TXLSXWorkbook.SaveAsEncryptedmasih raiseEXlsxEncryptionNotImplemented— wave J phase 2 akan menambahkan writer OLE Compound File Binary (stream container\\005DataSpaces) dan menghubungkan pipeline keSaveAsEncrypted. Sampai saat itu, unit baru ini adalah scaffolding internal library yang tidak boleh dijadikan dependensi oleh pemanggil
Versi 2.86.0
Dihapus
- Round-trip QueryTable dan External Data Connection (wave I, backlog #28). QueryTables dan external data connections buatan Excel (Data → Get External Data from Web / SQL / OLEDB) kini bertahan pada siklus simpan/buka HotXLS. Sebelumnya reader BIFF8 diam-diam melewati
QsiSXTag($0802),QsiSXTagExt($0810), danDConn($0876), sehingga metadata yang mendeskripsikan query upstream dibuang saat menyimpan dan tabel turun menjadi nilai sel biasa. Reader kini menangkap record ini sebagai byte opaque dan writer memancarkannya kembali ke substream worksheet (bersama blok PIVOTVIEW sesuai [MS-XLS] §2.1.7.20.5) dan globals workbook (bersama blok late globals sebelum EOF sesuai §2.1.7.20.3). HotXLS masih belum memodelkan struktur QSI / DConn bertipe secara programatik — membuat QueryTables baru dari kode pemanggil ditunda ke wave berikutnya — tetapi workbook yang sudah berisi metadata tersebut tidak lagi kehilangan metadata refresh. Hanya BIFF8 (.xls); BIFF5 tidak terpengaruh
Versi 2.85.1
Diubah
- Memulihkan build library Win32 / Win64. Dua variabel helper pivot-line-item dalam emitter SXLI multi-data-field wave H5.3 dideklarasikan sebagai tipe anonim
array of array of Wordterpisah, yang diperlakukan compiler Delphi sebagai tipe tanpa nama yang berbeda dan ditolak pada assignment langsung denganE2008 Incompatible types. Library HotXLS tidak dapat dibuild sejak v2.84.1 pada RAD Studio 12.0 hingga 37.0. Kedua variabel kini dideklarasikan bersama sehingga berbagi satu tipe anonim, memperbaiki assignment dan memulihkan output .dcu / .bpl untuk target Win32 dan Win64. Tidak ada perubahan perilaku runtime — byte SXLI yang dipancarkan identik dengan v2.85.0
Versi 2.85.0
Diubah
- API subtotal pivot bertipe (wave H5.4).
TXLSPivotFieldbertipe kini mengekspos properti setSubtotals: TXLSPivotSubtotalsbersamaSubtotalMask: Wordmentah yang sudah ada. Pemanggil dapat menetapkan misalnyaField.Subtotals := [xlpsSum, xlpsAverage];alih-alih mengemas bit field SXVDgrbitSubsecara manual. Dua belas tipe subtotal diekspos (xlpsDefault, xlpsSum, xlpsCount/CountA, xlpsAverage, xlpsMax, xlpsMin, xlpsProduct, xlpsCountNums, xlpsStdDev, xlpsStdDevP, xlpsVar, xlpsVarP), masing-masing dipetakan ke satu bit sesuai [MS-XLS] §2.4.279.SubtotalMaskmentah tetap menjadi sumber kebenaran round-trip — bit reserved 12-15 dipertahankan saat baca/tulis. Menutup known limit wave H4.3 “row field subtotal SXVD.grbitSub configuration unavailable from API” dan menyelesaikan follow-up pivot wave H5
Versi 2.84.1
Ditambahkan
- Ekspansi SXLI multi data-field (wave H5.3). Saat pivot table memiliki lebih dari satu data field DAN axis data-field cocok dengan axis SXLI tertentu (
DataFieldAxisIsRow = True&& row axis, atauDataFieldAxisIsRow = False&& column axis), writer kini mereplikasi setiap kombinasi cartesian-product sebanyakDataFieldCountkali denganiData = 0 .. DataFieldCount - 1, plusDataFieldCountbaris grand-total sehingga setiap data field mendapatkan totalnya sendiri. Axis yang bukan host tidak berubah. Excel dan reader lain kini merender pivot multi-data-field dalam layout yang dimaksud pemanggil, bukan fallback ke aproksimasi sebelumnya “satuiData = 0per kombinasi”. Pivot single-data-field memancarkan output bit-identical dengan v2.84.0. Delta compression (H5.1) melipat kombinasi berulang menjadi sekitar 8 byte per replika, sehingga ekspansi menambahkan overhead byte minimal. Menutup known limit wave H4.3 “multi-data-field SXLI not correctly expanded”
Versi 2.84.0
Diubah
- API pre-selection page-axis pivot (wave H5.2).
TXLSPivotFieldbertipe kini membawa propertiPageItemIndexyang dapat diatur pivot yang dibangun secara programatik untuk memilih cache item tertentu lebih dulu pada filter page-axis. DefaultxlPageItemAll(= $7FFD) membiarkan filter pada “(All)” sehingga pemanggil yang tidak pernah menetapkanPageItemIndexberperilaku bit-identical dengan v2.83.2. Writer SXPI ($00B6) membacaField.PageItemIndexalih-alih meng-hardcode $7FFD, dan reader bertipe kini mengisiPageItemIndexdari SXPI saat Open sehingga pemanggil dapat memeriksa pilihan halaman yang tersimpan. Menutup known limit wave H4.3 “page filter caller-pre-selection unavailable from API”
Versi 2.83.2
Diubah
- Record SXLI pivot lebih kecil melalui delta compression (wave H5.1). Writer pivot kini melakukan delta-compress line item SXLI memakai field cSic spesifikasi — indeks cache-item awal setiap baris yang sama dengan baris sebelumnya dalam record SXLI yang sama dilipat menjadi hitungan shared-prefix, dan hanya indeks trailing yang dipancarkan. Record SXLI row-axis umum (beberapa row field × puluhan item) menyusut 30–60% tanpa perubahan semantik. Output tetap dipecah agar berada di bawah batas ukuran record BIFF 8224-byte. Baris pertama setiap record SXLI selalu memancarkan cSic = 0 (lokal record, tanpa back-reference lintas record), dan baris grand-total tidak pernah di-delta-compress
Versi 2.83.1
Diperbaiki
- Warna fill, font, dan border sel yang diatur via RGB kini round-trip melalui save/open .xls. Writer XFExt BIFF8 ($087D) memancarkan field ixfe setiap record memakai posisi array XF dalam memori, tetapi record sel yang cocok di disk menulis ixfe memakai urutan SaveIndex setelah pruning. Setiap kali XF yang lebih awal dalam tabel dipangkas saat save (umum ketika satu sel bermigrasi dari XF sementara ke XF final), ixfe setiap XFExt bergeser sebesar jumlah slot yang dipangkas, dan warna kaya yang terkait dengan setiap sel berpindah ke sel tetangga saat reload. Writer kini menyelesaikan SaveIndex untuk setiap XF rich-slot dan memancarkan ixfe on-disk yang cocok, sehingga warna sel RGB yang disimpan HotXLS — fill interior, warna font, warna border — bertahan bersih pada round-trip save / reload. Record XFExt untuk XF yang dipangkas sepenuhnya kini dilewati, bukan dipancarkan dengan ixfe menggantung
Versi 2.83.0
Diubah
- Line item pivot + status page item (wave H4.3). Pivot table yang dibangun secara programatik kini memancarkan SXLI ([MS-XLS] §2.4.275, $00B5) untuk axis baris dan kolom, plus SXPI ($00B6) untuk page axis. Ini memberi pivot view layout-fidelity: reader non-Excel melihat urutan tampilan persis seperti yang dimaksud writer, pivot besar dibuka lebih cepat (Excel tidak harus menghitung ulang layout baris dari awal), dan filter halaman bertahan dengan pilihan default "(All)" per page field
- Enumerasi SXLI baris + kolom. Writer mengenumerasi cartesian product dari cache item field axis (field terdalam berubah paling cepat, sesuai layout nested-row Excel) dan memancarkan satu baris per kombinasi plus baris grand-total trailing yang ditandai dengan bit SXLI nTypes fGrandTotal. Setiap baris memakai cSic = 0 (tanpa delta-compression — lebih sederhana dengan biaya beberapa byte ekstra per baris). Output dipecah menjadi beberapa record SXLI saat jumlah baris melampaui batas BIFF 8224-byte; safety cap 16384 baris mencegah ekspansi tanpa kendali pada input patologis
- Status page-axis SXPI. Dipancarkan hanya saat setidaknya satu field memiliki Axis = xlpfaPageField. Setiap entri berukuran 10 byte (isxvd + iCache + ipos + objId) dengan iCache = $7FFD menandakan "(All)" — permukaan API untuk memilih page item tertentu lebih dulu ditunda ke wave H5. Pivot tanpa page field tidak memancarkan SXPI (ABNF worksheet mencantumkannya sebagai opsional)
- Menutup known limit wave H3 "SXLI / SXPI not emitted". Dikombinasikan dengan H4.1 (format angka DataField) dan H4.2 (stream SXDBB per-record), wave H4 menutup ketiga known limit dalam writer pivot-table H3. Pivot table yang dibangun melalui
IXLSWorksheet.AddPivotTablekini mengirim cache mandiri dengan metadata layout lengkap