[{"data":1,"prerenderedAt":2214},["ShallowReactive",2],{"blog-list-en":3},[4,372,642,1377,1487,1698,2061],{"id":5,"title":6,"author":7,"body":8,"date":355,"description":356,"extension":357,"meta":358,"navigation":359,"path":360,"seo":361,"stem":363,"tags":364,"thumbnail":370,"__hash__":371},"blog_en/blog/en/kyorimemo-release.md","Kyorimemo Released — A Simple iOS App for Tracking Your Vehicle's Mileage",null,{"type":9,"value":10,"toc":333},"minimark",[11,16,23,26,31,38,41,43,48,51,54,56,60,65,68,72,75,79,82,86,89,93,96,100,103,107,110,112,116,160,163,165,169,188,190,194,264,266,270,273,292,294,298,301,310,312,316],[12,13,15],"h1",{"id":14},"unvell-inc-releases-kyorimemo-a-simple-ios-app-for-tracking-vehicle-mileage","UNVELL Inc. Releases \"Kyorimemo,\" a Simple iOS App for Tracking Vehicle Mileage",[17,18,19],"p",{},[20,21,22],"strong",{},"— Just enter your odometer reading. Ready for daily business reports, expense reimbursement, and tax filing —",[24,25],"hr",{},[17,27,28],{},[20,29,30],{},"April 10, 2026 — UNVELL Inc.",[17,32,33,34,37],{},"UNVELL Inc. is pleased to announce the release of ",[20,35,36],{},"\"Kyorimemo,\""," a mileage tracking app for iOS, now available on the App Store.",[17,39,40],{},"Kyorimemo is a simple iOS app that automatically calculates and records driving distance just by entering your vehicle's odometer reading. It is designed around real-world workflows such as daily business reports, company- and personal-vehicle management, expense reimbursement, and tax filing.",[24,42],{},[44,45,47],"h2",{"id":46},"why-we-built-it","Why We Built It",[17,49,50],{},"Even today, mileage tracking for business trips and sales activities is often handled by hand in notebooks or Excel sheets. Records get scattered, expense reimbursement becomes painful, and managing multiple vehicles together is harder than it should be — small daily frictions that add up.",[17,52,53],{},"Kyorimemo was built to take those frictions away. The goal: a simple, practical mileage management tool you can use anywhere, anytime, with just a smartphone.",[24,55],{},[44,57,59],{"id":58},"key-features","Key Features",[61,62,64],"h3",{"id":63},"_1-quick-entry","1. Quick Entry",[17,66,67],{},"Just enter the start and end odometer readings — distance is calculated automatically. You can also attach notes and location data, so you can later check exactly when, where, and how far you drove.",[61,69,71],{"id":70},"_2-multi-vehicle-management-pro","2. Multi-Vehicle Management (Pro)",[17,73,74],{},"Register multiple vehicles — personal cars, company cars, motorcycles — and color-code each one. Switch between vehicles with a swipe while logging.",[61,76,78],{"id":77},"_3-calendar-view-pro","3. Calendar View (Pro)",[17,80,81],{},"Review your records by date in calendar view. You can also add records to past dates, making it easy to see your monthly driving patterns.",[61,83,85],{"id":84},"_4-csv-export-pro","4. CSV Export (Pro)",[17,87,88],{},"Export your records as CSV files, ready to use directly for expense reports, daily business reports, tax filing, or fleet management reports. Files are encoded in UTF-8 with BOM, so they open cleanly in Excel without garbled characters.",[61,90,92],{"id":91},"_5-icloud-sync","5. iCloud Sync",[17,94,95],{},"Enable iCloud and your data is automatically backed up and synced. Switching devices is seamless.",[61,97,99],{"id":98},"_6-automatic-location-logging","6. Automatic Location Logging",[17,101,102],{},"Your current address is automatically attached to each record, so you can later check where you refueled or logged a trip.",[61,104,106],{"id":105},"_7-ad-free","7. Ad-Free",[17,108,109],{},"Even the free version contains no ads — a clean screen so you can focus on logging.",[24,111],{},[44,113,115],{"id":114},"pricing","Pricing",[117,118,119,134],"table",{},[120,121,122],"thead",{},[123,124,125,129,132],"tr",{},[126,127,128],"th",{},"Plan",[126,130,131],{},"Price",[126,133,59],{},[135,136,137,149],"tbody",{},[123,138,139,143,146],{},[140,141,142],"td",{},"Free",[140,144,145],{},"¥0",[140,147,148],{},"1 vehicle, mileage entry & logging, list view, ad-free",[123,150,151,154,157],{},[140,152,153],{},"Pro",[140,155,156],{},"¥550 / month",[140,158,159],{},"Unlimited vehicles, calendar view, CSV export, all features",[17,161,162],{},"You can cancel the Pro plan at any time.",[24,164],{},[44,166,168],{"id":167},"who-its-for","Who It's For",[170,171,172,176,179,182,185],"ul",{},[173,174,175],"li",{},"Sales reps, service technicians, and other professionals who drive for work",[173,177,178],{},"Administrative staff managing company cars or fleets",[173,180,181],{},"Sole proprietors and freelancers (expense reimbursement, tax filing)",[173,183,184],{},"Drivers who want to track personal-vehicle fuel economy and mileage",[173,186,187],{},"Anyone keeping a service or inspection history",[24,189],{},[44,191,193],{"id":192},"product-overview","Product Overview",[117,195,196,206],{},[120,197,198],{},[123,199,200,203],{},[126,201,202],{},"Item",[126,204,205],{},"Details",[135,207,208,216,224,231,244,256],{},[123,209,210,213],{},[140,211,212],{},"Product",[140,214,215],{},"Kyorimemo",[123,217,218,221],{},[140,219,220],{},"Platform",[140,222,223],{},"iOS (iPhone / iPad)",[123,225,226,228],{},[140,227,131],{},[140,229,230],{},"Free (Pro plan: ¥550 / month)",[123,232,233,236],{},[140,234,235],{},"Website",[140,237,238],{},[239,240,241],"a",{"href":241,"rel":242},"https://kyorimemo.unvell.com",[243],"nofollow",[123,245,246,249],{},[140,247,248],{},"App Store",[140,250,251],{},[239,252,255],{"href":253,"rel":254},"https://apps.apple.com/jp/app/%E8%B7%9D%E9%9B%A2%E3%83%A1%E3%83%A2/id6761127233",[243],"https://apps.apple.com/jp/app/距離メモ/id6761127233",[123,257,258,261],{},[140,259,260],{},"Developer",[140,262,263],{},"UNVELL Inc.",[24,265],{},[44,267,269],{"id":268},"download-more-info","Download & More Info",[17,271,272],{},"Available for free download on the App Store.",[170,274,275,284],{},[173,276,277,280,281],{},[20,278,279],{},"App Store:"," ",[239,282,255],{"href":253,"rel":283},[243],[173,285,286,280,289],{},[20,287,288],{},"Website:",[239,290,241],{"href":241,"rel":291},[243],[24,293],{},[44,295,297],{"id":296},"about-unvell-inc","About UNVELL Inc.",[17,299,300],{},"UNVELL Inc. is a software development company guided by the principle \"Keep Simple, Keep Smart.\" We develop and deliver software products for developers, creators, and business users — including the spreadsheet component \"ReoGrid.\"",[17,302,303,280,306],{},[20,304,305],{},"Company website:",[239,307,308],{"href":308,"rel":309},"https://unvell.com",[243],[24,311],{},[61,313,315],{"id":314},"contact","Contact",[170,317,318,320,327],{},[173,319,263],{},[173,321,322,323],{},"Email: ",[239,324,326],{"href":325},"mailto:info@unvell.com","info@unvell.com",[173,328,329,330],{},"Web: ",[239,331,241],{"href":241,"rel":332},[243],{"title":334,"searchDepth":335,"depth":335,"links":336},"",2,[337,338,348,349,350,351,352],{"id":46,"depth":335,"text":47},{"id":58,"depth":335,"text":59,"children":339},[340,342,343,344,345,346,347],{"id":63,"depth":341,"text":64},3,{"id":70,"depth":341,"text":71},{"id":77,"depth":341,"text":78},{"id":84,"depth":341,"text":85},{"id":91,"depth":341,"text":92},{"id":98,"depth":341,"text":99},{"id":105,"depth":341,"text":106},{"id":114,"depth":335,"text":115},{"id":167,"depth":335,"text":168},{"id":192,"depth":335,"text":193},{"id":268,"depth":335,"text":269},{"id":296,"depth":335,"text":297,"children":353},[354],{"id":314,"depth":341,"text":315},"2026-04-10","UNVELL Inc. has released \"Kyorimemo,\" an iOS app that lets you record your vehicle's mileage (odometer) in seconds. Useful for daily business reports, fleet management, expense reimbursement, and tax filing — with a Pro plan that adds CSV export, calendar view, and multi-vehicle management.","md",{},true,"/blog/en/kyorimemo-release",{"title":6,"description":362},"Kyorimemo is an iOS app that automatically calculates and records driving distance just by entering your odometer reading. Multi-vehicle management, calendar view, CSV export, iCloud sync, and ad-free. Perfect for daily reports, expense reimbursement, and tax filing.","blog/en/kyorimemo-release",[365,366,367,368,369],"kyorimemo","ios-app","vehicle-management","mileage-tracker","release","/images/articles/kyorimemo-overview.png","lNtYTgEreJxEc8ooYd16Xy0FF8DeKhXEyvsj__Hjp40",{"id":373,"title":374,"author":7,"body":375,"date":628,"description":629,"extension":357,"meta":630,"navigation":359,"path":631,"seo":632,"stem":634,"tags":635,"thumbnail":640,"__hash__":641},"blog_en/blog/en/video-tagger-press-release.md","VideoTagger Officially Released — An AI-Powered, Tag-Based Video File Management Tool",{"type":9,"value":376,"toc":611},[377,381,386,388,393,400,407,409,411,414,417,419,421,425,428,432,435,439,453,457,460,464,467,471,474,476,478,495,497,499,556,558,560,563,580,582,584,587,594,596,598],[12,378,380],{"id":379},"unvell-inc-officially-releases-videotagger-an-ai-powered-video-file-management-tool","UNVELL Inc. Officially Releases \"VideoTagger,\" an AI-Powered Video File Management Tool",[17,382,383],{},[20,384,385],{},"— Built specifically for tag-based management of large video collections, with on-device AI assisting tag detection —",[24,387],{},[17,389,390],{},[20,391,392],{},"April 1, 2026 — UNVELL Inc.",[17,394,395,396,399],{},"UNVELL Inc. is pleased to announce the official release (v1.0.0) of ",[20,397,398],{},"\"VideoTagger,\""," a desktop video file management tool.",[17,401,402,403,406],{},"VideoTagger is a dedicated tool designed for ",[20,404,405],{},"tag-based organization and search"," of ever-growing video collections. With on-device AI assisting automatic tag detection, it makes managing large numbers of video files efficient. It supports macOS and Windows, and is available for download from the official site starting today.",[24,408],{},[44,410,47],{"id":46},[17,412,413],{},"In film and content production, raw footage piles up daily — collections of thousands or even tens of thousands of files are not unusual. Folder-based organization breaks down at that scale, and \"where was that clip?\" turns into a major time sink.",[17,415,416],{},"VideoTagger was built to solve exactly this problem. Tag your files to organize them, then find them instantly by tag — simple, powerful video file management.",[24,418],{},[44,420,59],{"id":58},[61,422,424],{"id":423},"_1-built-specifically-for-tag-based-video-management","1. Built Specifically for Tag-Based Video Management",[17,426,427],{},"Create custom tags freely and assign them to video files. Batch tagging across multiple files is supported, so you can organize large numbers of files efficiently.",[61,429,431],{"id":430},"_2-ai-assisted-automatic-tag-detection","2. AI-Assisted Automatic Tag Detection",[17,433,434],{},"On-device AI (TensorFlow.js) analyzes video content and suggests tags by detecting subjects such as people, vehicles, and landscapes. All AI processing runs locally, so your video files are never sent to external servers.",[61,436,438],{"id":437},"_3-two-workspace-design","3. Two-Workspace Design",[170,440,441,447],{},[173,442,443,446],{},[20,444,445],{},"Organize mode"," — Add files to your library and tag them",[173,448,449,452],{},[20,450,451],{},"Find mode"," — Pick tags and instantly find what you need",[61,454,456],{"id":455},"_4-fast-thumbnail-previews","4. Fast Thumbnail Previews",[17,458,459],{},"Thumbnails are automatically generated and cached for every video in your library, letting you scan content quickly without opening each file.",[61,461,463],{"id":462},"_5-detailed-metadata-display","5. Detailed Metadata Display",[17,465,466],{},"Resolution, frame rate, codec, bitrate, camera/lens information, and other technical metadata are extracted and displayed automatically.",[61,468,470],{"id":469},"_6-privacy-first-by-design","6. Privacy-First by Design",[17,472,473],{},"Both AI processing and the database run entirely locally. Video files and metadata are never uploaded to the cloud.",[24,475],{},[44,477,168],{"id":167},[170,479,480,483,486,489,492],{},[173,481,482],{},"Filmmakers and cinematographers",[173,484,485],{},"YouTubers and video content creators",[173,487,488],{},"Production companies",[173,490,491],{},"Stock footage librarians",[173,493,494],{},"Marketing and PR teams at companies",[24,496],{},[44,498,193],{"id":192},[117,500,501,509],{},[120,502,503],{},[123,504,505,507],{},[126,506,202],{},[126,508,205],{},[135,510,511,518,526,533,540,550],{},[123,512,513,515],{},[140,514,212],{},[140,516,517],{},"VideoTagger",[123,519,520,523],{},[140,521,522],{},"Version",[140,524,525],{},"1.0.0",[123,527,528,530],{},[140,529,220],{},[140,531,532],{},"macOS (Apple Silicon) / Windows (x64)",[123,534,535,537],{},[140,536,115],{},[140,538,539],{},"Subscription (30-day free trial available)",[123,541,542,544],{},[140,543,235],{},[140,545,546],{},[239,547,548],{"href":548,"rel":549},"https://video-tagger.com",[243],[123,551,552,554],{},[140,553,260],{},[140,555,263],{},[24,557],{},[44,559,269],{"id":268},[17,561,562],{},"A free trial is available from the official website.",[17,564,565,280,567,570,573,280,576],{},[20,566,288],{},[239,568,548],{"href":548,"rel":569},[243],[571,572],"br",{},[20,574,575],{},"Japanese site:",[239,577,578],{"href":578,"rel":579},"https://video-tagger.com/ja",[243],[24,581],{},[44,583,297],{"id":296},[17,585,586],{},"UNVELL Inc. is a software development company guided by the principle \"Keep Simple, Keep Smart.\" We actively adopt AI and cutting-edge technologies, and develop and deliver software products for developers and creators — including the spreadsheet component \"ReoGrid.\"",[17,588,589,280,591],{},[20,590,305],{},[239,592,308],{"href":308,"rel":593},[243],[24,595],{},[61,597,315],{"id":314},[17,599,263,600,602,603,605,607,608],{},[571,601],{},"\nEmail: ",[239,604,326],{"href":325},[571,606],{},"\nWeb: ",[239,609,548],{"href":548,"rel":610},[243],{"title":334,"searchDepth":335,"depth":335,"links":612},[613,614,622,623,624,625],{"id":46,"depth":335,"text":47},{"id":58,"depth":335,"text":59,"children":615},[616,617,618,619,620,621],{"id":423,"depth":341,"text":424},{"id":430,"depth":341,"text":431},{"id":437,"depth":341,"text":438},{"id":455,"depth":341,"text":456},{"id":462,"depth":341,"text":463},{"id":469,"depth":341,"text":470},{"id":167,"depth":335,"text":168},{"id":192,"depth":335,"text":193},{"id":268,"depth":335,"text":269},{"id":296,"depth":335,"text":297,"children":626},[627],{"id":314,"depth":341,"text":315},"2026-04-01","VideoTagger, a desktop tool that lets you organize and search large video collections with tags, is now officially released. Includes on-device AI-assisted tag detection. Supports macOS / Windows, with a 30-day free trial.",{},"/blog/en/video-tagger-press-release",{"title":374,"description":633},"VideoTagger, a desktop tool that lets you organize and search large video collections with tags, is now officially released. Features on-device AI tag detection, batch tagging, and fast thumbnail previews. Privacy-first by design — your videos are never sent to the cloud.","blog/en/video-tagger-press-release",[636,637,638,369,639],"videotagger","video-management","ai-tagging","desktop-app","/images/articles/videotagger-overview.png","0VsBYVNEa8phVcDjgOI0Ej2IlY562laAtrjlXIRYLOw",{"id":643,"title":644,"author":7,"body":645,"date":1363,"description":1364,"extension":357,"meta":1365,"navigation":359,"path":1366,"seo":1367,"stem":1369,"tags":1370,"thumbnail":1375,"__hash__":1376},"blog_en/blog/en/reogrid-web-release.md","ReoGrid Web — Now Officially Released. A Powerful Excel-Like Web Spreadsheet Library",{"type":9,"value":646,"toc":1344},[647,654,658,661,664,666,670,677,680,682,686,690,693,700,704,711,744,748,754,768,772,779,785,789,792,866,956,960,963,965,969,976,1064,1070,1074,1077,1081,1084,1086,1090,1212,1219,1224,1226,1230,1233,1286,1288,1292,1310,1340],[17,648,649,650,653],{},"UNVELL Inc. is pleased to announce the official release of ",[20,651,652],{},"ReoGrid Web"," today, March 24, 2026 — a JavaScript/TypeScript library for embedding Excel-like spreadsheet functionality into web applications.",[44,655,657],{"id":656},"what-is-reogrid-web","What Is ReoGrid Web?",[17,659,660],{},"ReoGrid Web is an Excel-like spreadsheet library that runs in the browser. It bundles the formula engine, Excel I/O, and Canvas rendering engine all into a single package, with full support for both React and Vue.",[17,662,663],{},"A single library is all you need to add to your project to deliver Excel-equivalent spreadsheet functionality in a web app.",[24,665],{},[44,667,669],{"id":668},"background-bringing-10-years-of-net-know-how-to-the-web","Background — Bringing 10+ Years of .NET Know-How to the Web",[17,671,672,673,676],{},"We've been developing and shipping ",[20,674,675],{},"ReoGrid for .NET"," (WinForms / WPF) since 2014. Cumulative NuGet downloads now exceed 180,000.",[17,678,679],{},"Building on a decade of work on cell modeling, formula engines, and Excel compatibility, we built ReoGrid Web as a new product for web developers.",[24,681],{},[44,683,685],{"id":684},"highlight-features","Highlight Features",[61,687,689],{"id":688},"invoice-demo-the-power-of-the-formula-engine","Invoice Demo — The Power of the Formula Engine",[17,691,692],{},"We've prepared an invoice demo as a practical showcase of the formula engine. Enter quantities and unit prices, and totals are calculated automatically. You can build formulas just like in Excel.",[17,694,695],{},[696,697],"img",{"alt":698,"src":699},"Invoice demo — automatic calculation via the formula engine","/images/articles/reogrid-web-invoice.png",[61,701,703],{"id":702},"high-excel-compatibility","High Excel Compatibility",[17,705,706,707,710],{},"A central design priority for ReoGrid Web was ",[20,708,709],{},"strong Excel compatibility",".",[170,712,713,719,725],{},[173,714,715,718],{},[20,716,717],{},"Formula compatibility",": SUM, AVERAGE, IF, VLOOKUP and other key functions are implemented; cell references are Excel-compatible",[173,720,721,724],{},[20,722,723],{},"xlsx import / export",": Cell values, formulas, styles, borders, and merged cells are preserved on read and write",[173,726,727,730,731,735,736,739,740,743],{},[20,728,729],{},"Excel number formats",": Excel format strings such as ",[732,733,734],"code",{},"#,##0.00",", ",[732,737,738],{},"¥#,##0",", and ",[732,741,742],{},"yyyy/mm/dd"," work as-is",[61,745,747],{"id":746},"cell-styles-and-excel-compatible-layout","Cell Styles and Excel-Compatible Layout",[17,749,750],{},[696,751],{"alt":752,"src":753},"Cell style sample","/images/articles/reogrid-web-cell-styles.png",[170,755,756,762],{},[173,757,758,761],{},[20,759,760],{},"Faithful cell-style reproduction",": Fonts, text colors, background colors, alignment, and indentation match Excel's precision",[173,763,764,767],{},[20,765,766],{},"Borders and merged cells",": Border style, weight, and color can be set per edge; merged cells behave the same as in Excel",[61,769,771],{"id":770},"optimized-high-performance-rendering","Optimized High-Performance Rendering",[17,773,774,775,778],{},"A virtual scrolling approach renders only the cells in the visible area, keeping rendering smooth even past 10,000 rows. In our measurements, ",[20,776,777],{},"100,000 cells (10,000 rows × 10 columns) initialize in around 200ms — about 2μs per cell"," — roughly 95× faster than competing products (per our internal benchmarks).",[17,780,781],{},[696,782],{"alt":783,"src":784},"Demo of data filtering, sorting, and large-dataset rendering","/images/articles/reogrid-web-data-table.png",[61,786,788],{"id":787},"react-and-vue-support","React and Vue Support",[17,790,791],{},"Both frameworks have built-in wrappers, with TypeScript type definitions so autocomplete works out of the box.",[793,794,798],"pre",{"className":795,"code":796,"language":797,"meta":334,"style":334},"language-tsx shiki shiki-themes github-light github-dark","// React\nimport { Reogrid } from '@reogrid/lite/react';\n\n\u003CReogrid style={{ width: '100%', height: '400px' }} />\n","tsx",[732,799,800,809,829,834],{"__ignoreMap":334},[801,802,805],"span",{"class":803,"line":804},"line",1,[801,806,808],{"class":807},"sJ8bj","// React\n",[801,810,811,815,819,822,826],{"class":803,"line":335},[801,812,814],{"class":813},"szBVR","import",[801,816,818],{"class":817},"sVt8B"," { Reogrid } ",[801,820,821],{"class":813},"from",[801,823,825],{"class":824},"sZZnC"," '@reogrid/lite/react'",[801,827,828],{"class":817},";\n",[801,830,831],{"class":803,"line":341},[801,832,833],{"emptyLinePlaceholder":359},"\n",[801,835,837,840,844,848,851,854,857,860,863],{"class":803,"line":836},4,[801,838,839],{"class":817},"\u003C",[801,841,843],{"class":842},"sj4cs","Reogrid",[801,845,847],{"class":846},"sScJk"," style",[801,849,850],{"class":813},"=",[801,852,853],{"class":817},"{{ width: ",[801,855,856],{"class":824},"'100%'",[801,858,859],{"class":817},", height: ",[801,861,862],{"class":824},"'400px'",[801,864,865],{"class":817}," }} />\n",[793,867,871],{"className":868,"code":869,"language":870,"meta":334,"style":334},"language-vue shiki shiki-themes github-light github-dark","\u003C!-- Vue -->\n\u003Cscript setup>\nimport { Reogrid } from '@reogrid/lite/vue';\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CReogrid style=\"width: 100%; height: 400px\" />\n\u003C/template>\n","vue",[732,872,873,878,892,905,914,919,929,947],{"__ignoreMap":334},[801,874,875],{"class":803,"line":804},[801,876,877],{"class":807},"\u003C!-- Vue -->\n",[801,879,880,882,886,889],{"class":803,"line":335},[801,881,839],{"class":817},[801,883,885],{"class":884},"s9eBZ","script",[801,887,888],{"class":846}," setup",[801,890,891],{"class":817},">\n",[801,893,894,896,898,900,903],{"class":803,"line":341},[801,895,814],{"class":813},[801,897,818],{"class":817},[801,899,821],{"class":813},[801,901,902],{"class":824}," '@reogrid/lite/vue'",[801,904,828],{"class":817},[801,906,907,910,912],{"class":803,"line":836},[801,908,909],{"class":817},"\u003C/",[801,911,885],{"class":884},[801,913,891],{"class":817},[801,915,917],{"class":803,"line":916},5,[801,918,833],{"emptyLinePlaceholder":359},[801,920,922,924,927],{"class":803,"line":921},6,[801,923,839],{"class":817},[801,925,926],{"class":884},"template",[801,928,891],{"class":817},[801,930,932,935,937,939,941,944],{"class":803,"line":931},7,[801,933,934],{"class":817},"  \u003C",[801,936,843],{"class":884},[801,938,847],{"class":846},[801,940,850],{"class":817},[801,942,943],{"class":824},"\"width: 100%; height: 400px\"",[801,945,946],{"class":817}," />\n",[801,948,950,952,954],{"class":803,"line":949},8,[801,951,909],{"class":817},[801,953,926],{"class":884},[801,955,891],{"class":817},[61,957,959],{"id":958},"native-support-for-japanese-and-japanese-formats","Native Support for Japanese and Japanese Formats",[17,961,962],{},"Japanese number formats (¥1,234), date formats (yyyy年M月d日), and Japanese era support are implemented natively — not bolted on as a localization layer.",[24,964],{},[44,966,968],{"id":967},"world-class-bundle-efficiency","World-Class Bundle Efficiency",[17,970,971,972,975],{},"Despite shipping a full feature set, ReoGrid Web ships at ",[20,973,974],{},"68 KB gzip (248 KB minified)"," — among the smallest in the world for this class of library.",[117,977,978,994],{},[120,979,980],{},[123,981,982,985,988,991],{},[126,983,984],{},"Library",[126,986,987],{},"gzip",[126,989,990],{},"Built-in Formulas",[126,992,993],{},"Built-in Excel I/O",[135,995,996,1013,1026,1039,1052],{},[123,997,998,1003,1008,1011],{},[140,999,1000,1002],{},[20,1001,652],{}," (Japan)",[140,1004,1005],{},[20,1006,1007],{},"68 KB",[140,1009,1010],{},"✅",[140,1012,1010],{},[123,1014,1015,1018,1021,1023],{},[140,1016,1017],{},"Comparable A (overseas)",[140,1019,1020],{},"122 KB",[140,1022,1010],{},[140,1024,1025],{},"❌",[123,1027,1028,1031,1034,1036],{},[140,1029,1030],{},"Comparable B (overseas)",[140,1032,1033],{},"621 KB",[140,1035,1010],{},[140,1037,1038],{},"△",[123,1040,1041,1044,1047,1050],{},[140,1042,1043],{},"Comparable C (Japan)",[140,1045,1046],{},"1,700+ KB",[140,1048,1049],{},"✅ (separate pkg)",[140,1051,1049],{},[123,1053,1054,1057,1060,1062],{},[140,1055,1056],{},"Comparable D (overseas)",[140,1058,1059],{},"830+ KB",[140,1061,1010],{},[140,1063,1049],{},[17,1065,1066],{},[1067,1068,1069],"em",{},"Per our internal review (March 2026)",[61,1071,1073],{"id":1072},"the-only-five-conditions-one-package-library-in-the-world","The Only \"Five Conditions, One Package\" Library in the World",[17,1075,1076],{},"Canvas rendering, zero dependencies, formula engine, Excel I/O, and React/Vue wrappers — ReoGrid Web is the only library that delivers all five from a single package, with no add-ons (per our review of five major products, March 2026).",[61,1078,1080],{"id":1079},"a-fully-japan-made-canvas-web-spreadsheet","A Fully Japan-Made Canvas Web Spreadsheet",[17,1082,1083],{},"Built in Japan, ReoGrid Web supports the Japan-specific formatting and business-form layouts that overseas products have struggled to handle, making adoption smooth for systems operated in Japan.",[24,1085],{},[44,1087,1089],{"id":1088},"editions","Editions",[117,1091,1092,1106],{},[120,1093,1094],{},[123,1095,1096,1098,1101,1103],{},[126,1097],{},[126,1099,1100],{},"Lite",[126,1102,153],{},[126,1104,1105],{},"Enterprise",[135,1107,1108,1122,1136,1150,1163,1175,1187,1199],{},[123,1109,1110,1112,1116,1119],{},[140,1111,131],{},[140,1113,1114],{},[20,1115,142],{},[140,1117,1118],{},"From ¥88,000",[140,1120,1121],{},"From ¥165,000",[123,1123,1124,1127,1130,1133],{},[140,1125,1126],{},"For",[140,1128,1129],{},"Individuals / general apps",[140,1131,1132],{},"Business / commercial apps",[140,1134,1135],{},"Business / large-scale commercial deployment",[123,1137,1138,1141,1144,1147],{},[140,1139,1140],{},"Domains",[140,1142,1143],{},"Unlimited",[140,1145,1146],{},"3 domains",[140,1148,1149],{},"30 domains (unlimited option available)",[123,1151,1152,1155,1158,1161],{},[140,1153,1154],{},"Spreadsheet features",[140,1156,1157],{},"Basic",[140,1159,1160],{},"Full",[140,1162,1160],{},[123,1164,1165,1168,1171,1173],{},[140,1166,1167],{},"Formula engine",[140,1169,1170],{},"Basic operations",[140,1172,1160],{},[140,1174,1160],{},[123,1176,1177,1180,1183,1185],{},[140,1178,1179],{},"Excel I/O",[140,1181,1182],{},"Excel import only",[140,1184,1160],{},[140,1186,1160],{},[123,1188,1189,1192,1195,1197],{},[140,1190,1191],{},"Cell types",[140,1193,1194],{},"Partial",[140,1196,1160],{},[140,1198,1160],{},[123,1200,1201,1204,1207,1210],{},[140,1202,1203],{},"Technical support",[140,1205,1206],{},"None",[140,1208,1209],{},"3 months from purchase",[140,1211,1209],{},[17,1213,1214,1215,1218],{},"ReoGrid Web uses a perpetual-license (one-time purchase) model. Compared with subscription-based products commonly priced at around ¥150,000 per developer per year, the ",[20,1216,1217],{},"total cost for 3 developers, 1 domain, and 3 years can be up to roughly 1/78"," of subscription pricing (per our internal review).",[17,1220,1221],{},[1067,1222,1223],{},"Pricing as of March 2026. All amounts include tax. See the official site for the latest pricing.",[24,1225],{},[44,1227,1229],{"id":1228},"roadmap","Roadmap",[17,1231,1232],{},"Planned feature additions:",[117,1234,1235,1245],{},[120,1236,1237],{},[123,1238,1239,1242],{},[126,1240,1241],{},"Timeline",[126,1243,1244],{},"What's Coming",[135,1246,1247,1255,1263,1271,1279],{},[123,1248,1249,1252],{},[140,1250,1251],{},"Soon",[140,1253,1254],{},"Conditional formatting",[123,1256,1257,1260],{},[140,1258,1259],{},"Summer 2026",[140,1261,1262],{},"Online PDF generation",[123,1264,1265,1268],{},[140,1266,1267],{},"Fall 2026",[140,1269,1270],{},"100+ Excel functions",[123,1272,1273,1276],{},[140,1274,1275],{},"In development",[140,1277,1278],{},"AI features (natural-language operations, formula authoring assistance)",[123,1280,1281,1283],{},[140,1282,1275],{},[140,1284,1285],{},"Auto-completion for data and formulas",[24,1287],{},[44,1289,1291],{"id":1290},"try-the-lite-edition","Try the Lite Edition",[793,1293,1297],{"className":1294,"code":1295,"language":1296,"meta":334,"style":334},"language-bash shiki shiki-themes github-light github-dark","npm install @reogrid/lite\n","bash",[732,1298,1299],{"__ignoreMap":334},[801,1300,1301,1304,1307],{"class":803,"line":804},[801,1302,1303],{"class":846},"npm",[801,1305,1306],{"class":824}," install",[801,1308,1309],{"class":824}," @reogrid/lite\n",[170,1311,1312,1319,1326,1333],{},[173,1313,1314],{},[239,1315,1318],{"href":1316,"rel":1317},"https://web.reogrid.net/",[243],"Product site",[173,1320,1321],{},[239,1322,1325],{"href":1323,"rel":1324},"https://reogrid.net/info-require",[243],"Inquiry / request for materials",[173,1327,1328],{},[239,1329,1332],{"href":1330,"rel":1331},"https://web.reogrid.net/demos",[243],"Live demo gallery",[173,1334,1335],{},[239,1336,1339],{"href":1337,"rel":1338},"https://www.npmjs.com/package/@reogrid/lite",[243],"npm package (@reogrid/lite)",[1341,1342,1343],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":334,"searchDepth":335,"depth":335,"links":1345},[1346,1347,1348,1356,1360,1361,1362],{"id":656,"depth":335,"text":657},{"id":668,"depth":335,"text":669},{"id":684,"depth":335,"text":685,"children":1349},[1350,1351,1352,1353,1354,1355],{"id":688,"depth":341,"text":689},{"id":702,"depth":341,"text":703},{"id":746,"depth":341,"text":747},{"id":770,"depth":341,"text":771},{"id":787,"depth":341,"text":788},{"id":958,"depth":341,"text":959},{"id":967,"depth":335,"text":968,"children":1357},[1358,1359],{"id":1072,"depth":341,"text":1073},{"id":1079,"depth":341,"text":1080},{"id":1088,"depth":335,"text":1089},{"id":1228,"depth":335,"text":1229},{"id":1290,"depth":335,"text":1291},"2026-03-24","ReoGrid Web — our new product that lets you embed an Excel-like spreadsheet into web applications — is now officially released. Built-in formula engine and Excel I/O, with React and Vue support. The Lite edition is free to try.",{},"/blog/en/reogrid-web-release",{"title":644,"description":1368},"ReoGrid Web — a high-performance JavaScript library for embedding Excel-like spreadsheets in web applications, with a built-in formula engine, Excel I/O, and React/Vue support — is now officially released. Available in Lite (free), Pro, and Enterprise editions.","blog/en/reogrid-web-release",[1371,1372,1373,369,1374],"reogrid","reogrid-web","spreadsheet","javascript","/images/articles/reogrid-web-release.png","9AfyKaYmuWphi0PxZ93MhxKJfiyOv7xC6lhTqda3iMM",{"id":1378,"title":1379,"author":7,"body":1380,"date":1475,"description":1476,"extension":357,"meta":1477,"navigation":359,"path":1478,"seo":1479,"stem":1481,"tags":1482,"thumbnail":1485,"__hash__":1486},"blog_en/blog/en/reogrid-document-renewal.md","ReoGrid Documentation — Fully Renewed",{"type":9,"value":1381,"toc":1471},[1382,1385,1392,1396,1399,1437,1441,1451,1454,1457,1459,1464],[17,1383,1384],{},"On March 19, 2026, we completed a full overhaul of the ReoGrid documentation.",[17,1386,1387,1388,1391],{},"Until now, our documentation has been criticized for being too thin — \"what I want to know isn't there,\" \"I don't know where to look.\" This renewal addresses that head-on, expanding the documentation to ",[20,1389,1390],{},"17 sections and 96 pages"," while completely rethinking how the information is organized.",[44,1393,1395],{"id":1394},"six-categories-organized-by-what-youre-trying-to-do","Six Categories, Organized by What You're Trying to Do",[17,1397,1398],{},"The new documentation is structured around six purpose-driven categories.",[170,1400,1401,1407,1413,1419,1425,1431],{},[173,1402,1403,1406],{},[20,1404,1405],{},"Getting Started"," — Architecture overview, installation, how-to guides",[173,1408,1409,1412],{},[20,1410,1411],{},"Core Components"," — Detailed reference for Workbook, Worksheet, and Cell",[173,1414,1415,1418],{},[20,1416,1417],{},"Data & Logic"," — Formulas, data management, filtering, input validation",[173,1420,1421,1424],{},[20,1422,1423],{},"UI Components"," — Cell types, charts, floating objects",[173,1426,1427,1430],{},[20,1428,1429],{},"Customization & Extension"," — Events, appearance customization, actions (Undo/Redo)",[173,1432,1433,1436],{},[20,1434,1435],{},"Reference"," — Excel/CSV/RGF import & export, advanced features, troubleshooting",[44,1438,1440],{"id":1439},"what-we-set-out-to-achieve","What We Set Out to Achieve",[17,1442,1443,1444,1447,1448,710],{},"Documentation that ",[1067,1445,1446],{},"exists"," isn't enough. What matters is being able to ",[20,1449,1450],{},"find the information you need, when you need it",[17,1452,1453],{},"Are you looking for installation steps right after setup? Verifying the behavior of a specific API mid-implementation? Hitting an error and searching for a fix? We designed the structure so you can navigate quickly to whichever situation you're in.",[17,1455,1456],{},"There's still room to grow, but we hope this renewal makes your development just a little smoother. We'll keep expanding the content from here.",[24,1458],{},[17,1460,1461],{},[20,1462,1463],{},"ReoGrid Documentation",[17,1465,1466,1467],{},"👉 ",[239,1468,1469],{"href":1469,"rel":1470},"https://reogrid.net/document",[243],{"title":334,"searchDepth":335,"depth":335,"links":1472},[1473,1474],{"id":1394,"depth":335,"text":1395},{"id":1439,"depth":335,"text":1440},"2026-03-22","We've completely restructured the ReoGrid documentation. The new version expands to 17 sections and 96 pages, organized into six categories so you can find what you need much faster.",{},"/blog/en/reogrid-document-renewal",{"title":1379,"description":1480},"ReoGrid .NET documentation has been expanded to 17 sections and 96 pages, reorganized into six categories — Getting Started, Core Components, Data & Logic, UI Components, Customization, and Reference — making information easier to find.","blog/en/reogrid-document-renewal",[1371,1373,1483,1484],".net","documentation","/images/articles/reogrid-document-renewal.png","bjY2dGI3TkAsKov9AE8XmaUNJ4GrZxML0YLrB0r_AOk",{"id":1488,"title":1489,"author":7,"body":1490,"date":1684,"description":1685,"extension":357,"meta":1686,"navigation":359,"path":1687,"seo":1688,"stem":1691,"tags":1692,"thumbnail":1696,"__hash__":1697},"blog_en/blog/en/reogrid-support.md","Buying the Product Is Just the Start — The Peace of Mind of \"3 Months of Technical Support\" with ReoGrid",{"type":9,"value":1491,"toc":1677},[1492,1495,1502,1507,1513,1516,1519,1545,1548,1551,1557,1564,1567,1573,1576,1579,1586,1589,1595,1598,1601,1604,1610,1616,1619,1626,1629,1631,1636,1639,1644,1647,1661,1664,1666,1671],[17,1493,1494],{},"When integrating spreadsheet functionality into a .NET project, many development teams run into the same concern: even after adopting a feature-rich component, can the team actually master it?",[17,1496,1497,1498,1501],{},"To put that concern to rest, ReoGrid bundles ",[20,1499,1500],{},"3 months of technical support"," as standard with every purchase.",[17,1503,1504],{},[1067,1505,1506],{},"The Professional edition includes 1 month of technical support.",[44,1508,1510],{"id":1509},"why-technical-support-matters",[20,1511,1512],{},"Why Technical Support Matters",[17,1514,1515],{},"ReoGrid is a spreadsheet component for .NET with an extensive, powerful feature set. With that range comes a learning curve — finding the best way to use it for your specific project takes time.",[17,1517,1518],{},"Real-world development often runs into situations like these:",[170,1520,1521,1527,1533,1539],{},[173,1522,1523,1526],{},[20,1524,1525],{},"\"I don't know how to do X\""," — the docs don't quite map to my case",[173,1528,1529,1532],{},[20,1530,1531],{},"\"I hit a bug or unexpected behavior\""," — and can't pin down the cause",[173,1534,1535,1538],{},[20,1536,1537],{},"\"I can't see how to meet the requirement\""," — I know what I want, but not how to do it in ReoGrid",[173,1540,1541,1544],{},[20,1542,1543],{},"\"My team's skills aren't keeping up\""," — the spreadsheet-component-specific knowledge isn't there yet",[17,1546,1547],{},"Pushing through development with these problems unsolved leads to schedule slippage, lower quality, and ultimately the risk that the project itself fails. Buying a license doesn't mean much if that's where things end up.",[17,1549,1550],{},"ReoGrid's technical support takes that risk on directly.",[44,1552,1554],{"id":1553},"what-changes-with-technical-support",[20,1555,1556],{},"What Changes with Technical Support",[17,1558,1559,1560,1563],{},"ReoGrid's technical support covers any technical challenge related to using the product. Based on your inquiry, we investigate, verify, and propose a concrete solution. Depending on the situation, we may also ",[20,1561,1562],{},"modify or extend ReoGrid itself"," to fit your needs.",[17,1565,1566],{},"What this support really does is turn \"we can't commit to adopting this until we know if we can use it\" into \"we'll be supported all the way to mastering it.\"",[44,1568,1570],{"id":1569},"case-a-adoption-support-for-a-financial-system-development-project-company-a-kanagawa",[20,1571,1572],{},"Case A: Adoption Support for a Financial-System Development Project (Company A, Kanagawa)",[17,1574,1575],{},"Company A, a development organization based in Kanagawa, was evaluating ReoGrid for a financial-system software development project.",[17,1577,1578],{},"The financial domain came with complex display requirements specific to the field. Their concerns before adoption: \"Can ReoGrid actually deliver this?\" and \"What's the right way to implement it?\"",[17,1580,1581,1582,1585],{},"After a detailed requirements interview, we used technical support to walk them through the right ways to use ReoGrid for their needs, and where the standard features fell short, we ",[20,1583,1584],{},"made modifications to ReoGrid itself"," (some handled as paid custom development).",[17,1587,1588],{},"The result: Company A completed development with high satisfaction. In a domain that demands precision, they were able to use ReoGrid to its full potential.",[44,1590,1592],{"id":1591},"case-b-breaking-through-a-mid-development-technical-block-company-b-aichi",[20,1593,1594],{},"Case B: Breaking Through a Mid-Development Technical Block (Company B, Aichi)",[17,1596,1597],{},"Company B, based in Aichi, had purchased ReoGrid and was building an internal system. Mid-development, several technical issues surfaced. Their internal investigation couldn't find a path forward, and development came to a halt.",[17,1599,1600],{},"When the inquiry came in, the ReoGrid support team gathered details, ran a focused investigation and verification, and presented an appropriate fix.",[17,1602,1603],{},"The issues were resolved quickly, and Company B resumed work. The project never got stuck, and they completed development successfully.",[44,1605,1607],{"id":1606},"a-products-value-isnt-only-its-performance",[20,1608,1609],{},"A Product's Value Isn't Only Its Performance",[17,1611,1612,1613,710],{},"What both cases have in common: combining the ReoGrid product with technical support is what let those projects ",[20,1614,1615],{},"finish smoothly",[17,1617,1618],{},"The real risk in development isn't \"we couldn't pick a good product.\" It's \"we picked a good product but couldn't make it work.\"",[17,1620,1621,1622,1625],{},"ReoGrid's value comes from both the high performance of the component itself and the ",[20,1623,1624],{},"reliable technical support"," behind it. A successful project means more than choosing strong technology — it means implementing that technology the right way, hitting your goals efficiently and within budget.",[17,1627,1628],{},"ReoGrid provides both.",[24,1630],{},[17,1632,1633],{},[20,1634,1635],{},"About ReoGrid",[17,1637,1638],{},"ReoGrid is a powerful, Excel-compatible spreadsheet component for integrating advanced spreadsheet capabilities into .NET applications.",[17,1640,1641],{},[20,1642,1643],{},"About Technical Support",[17,1645,1646],{},"To make adoption and development go as smoothly as possible, ReoGrid offers technical support. Each edition comes with the following standard support period:",[170,1648,1649,1655],{},[173,1650,1651,1654],{},[20,1652,1653],{},"Enterprise:"," 3 months from the date of purchase",[173,1656,1657,1660],{},[20,1658,1659],{},"Professional:"," 1 month from the date of purchase",[17,1662,1663],{},"Once the standard support period ends, you can also purchase additional technical support on a monthly basis as needed — a great fit for ongoing development and maintenance.",[24,1665],{},[17,1667,1668],{},[20,1669,1670],{},"ReoGrid product details",[17,1672,1466,1673],{},[239,1674,1675],{"href":1675,"rel":1676},"https://reogrid.net/",[243],{"title":334,"searchDepth":335,"depth":335,"links":1678},[1679,1680,1681,1682,1683],{"id":1509,"depth":335,"text":1512},{"id":1553,"depth":335,"text":1556},{"id":1569,"depth":335,"text":1572},{"id":1591,"depth":335,"text":1594},{"id":1606,"depth":335,"text":1609},"2026-03-05","When integrating spreadsheet capabilities into a .NET project, many development teams face the same concern. Even after picking a powerful component, can the team actually master it?",{},"/blog/en/reogrid-support",{"title":1689,"description":1690},"ReoGrid Technical Support","ReoGrid's technical support eliminates the uncertainty that comes with adopting a .NET spreadsheet component. The Enterprise edition includes 3 months of standard support, the Professional edition 1 month — peace of mind from implementation through operation.","blog/en/reogrid-support",[1371,1373,1483,1693,1694,1695],"visualstudio","excel","c#","/images/articles/2f6524b5fd1fe3569480aac63ab4714e.webp","k3MMtT2lR9SXN0S-PFeqj9MWYwbWd2tfoK2K-0v8DEg",{"id":1699,"title":1700,"author":7,"body":1701,"date":2049,"description":2050,"extension":357,"meta":2051,"navigation":359,"path":2052,"seo":2053,"stem":2055,"tags":2056,"thumbnail":2059,"__hash__":2060},"blog_en/blog/en/reogrid-large-data-lazy-loading.md","How to Display Large-Scale Data at Lightning Speed with ReoGrid",{"type":9,"value":1702,"toc":2042},[1703,1706,1709,1716,1722,1728,1733,1736,1742,1748,1754,1760,1763,1770,1840,1847,1853,1862,1998,2004,2013,2019,2025,2031,2034,2039],[17,1704,1705],{},"ReoGrid is a spreadsheet component for .NET applications. With no dependency on Excel itself, a single DLL gives your application Excel-equivalent capabilities.",[17,1707,1708],{},"In this article, we introduce how to load and display large-scale data — on the order of hundreds of thousands of rows — at lightning speed using ReoGrid.",[17,1710,1711,1712],{},"Video demo 👉 ",[239,1713,1714],{"href":1714,"rel":1715},"https://youtu.be/PospG1jddFw",[243],[44,1717,1719],{"id":1718},"why-its-so-fast",[20,1720,1721],{},"Why It's So Fast",[17,1723,1724,1725,710],{},"ReoGrid version 4 introduces a new technology called ",[20,1726,1727],{},"Lazy Loading",[17,1729,1730],{},[20,1731,1732],{},"Lazy loading doesn't pull all the data in at once. It loads only the minimum necessary slices, on demand.",[17,1734,1735],{},"Conventional approaches load every row up front, which means high memory pressure and slow time-to-display. Lazy loading instead reads only what's actually needed at the moment, making the initial render dramatically faster.",[17,1737,1738,1739,1741],{},"Other grid components offer similar techniques such as virtual mode, but they typically require the developer to implement and manage that control themselves.",[571,1740],{},"ReoGrid, by contrast, smartly manages internally when each cell should be loaded. As you scroll, zoom, or change the worksheet's visible area, ReoGrid automatically loads the cells it needs.",[17,1743,1744,1745,1747],{},"It also handles cells referenced by formulas and cells consumed by your application — managing every access pattern and triggering the load when required.",[571,1746],{},"This sophisticated approach is what lets ReoGrid 4 handle very large datasets without lag and render them at high speed.",[17,1749,1750],{},[696,1751],{"alt":1752,"src":1753},"1760961789-kbTGt4CYq8vwIiSW63AumlDQ.png","/images/articles/1760961789-kbTGt4CYq8vwIiSW63AumlDQ.png.webp",[44,1755,1757],{"id":1756},"the-implementation-is-surprisingly-simple",[20,1758,1759],{},"The Implementation Is Surprisingly Simple",[17,1761,1762],{},"As above, ReoGrid 4 manages cell state automatically — your application just needs to prepare the data.",[17,1764,1765,1766,1769],{},"First, implement ReoGrid's data-loading interface, ",[732,1767,1768],{},"DataSource",", and pass your own data through it to ReoGrid.",[793,1771,1775],{"className":1772,"code":1773,"language":1774,"meta":334,"style":334},"language-csharp shiki shiki-themes github-light github-dark","private void button1_Click(object sender, EventArgs e)\n{\n    // Set the worksheet row count\n    worksheet.SetRows(logs.Count);\n\n    // Configure the data source in lazy-loading mode\n    worksheet.AddDataSource(\n        new RangePosition(0, 0, logs.Count, COLUMN_COUNT),\n        new FlightLogDataSource(logs),\n        // Enable lazy loading\n        DataSourceLoadMode.LazyLoading);\n}\n","csharp",[732,1776,1777,1782,1787,1792,1797,1801,1806,1811,1816,1822,1828,1834],{"__ignoreMap":334},[801,1778,1779],{"class":803,"line":804},[801,1780,1781],{},"private void button1_Click(object sender, EventArgs e)\n",[801,1783,1784],{"class":803,"line":335},[801,1785,1786],{},"{\n",[801,1788,1789],{"class":803,"line":341},[801,1790,1791],{},"    // Set the worksheet row count\n",[801,1793,1794],{"class":803,"line":836},[801,1795,1796],{},"    worksheet.SetRows(logs.Count);\n",[801,1798,1799],{"class":803,"line":916},[801,1800,833],{"emptyLinePlaceholder":359},[801,1802,1803],{"class":803,"line":921},[801,1804,1805],{},"    // Configure the data source in lazy-loading mode\n",[801,1807,1808],{"class":803,"line":931},[801,1809,1810],{},"    worksheet.AddDataSource(\n",[801,1812,1813],{"class":803,"line":949},[801,1814,1815],{},"        new RangePosition(0, 0, logs.Count, COLUMN_COUNT),\n",[801,1817,1819],{"class":803,"line":1818},9,[801,1820,1821],{},"        new FlightLogDataSource(logs),\n",[801,1823,1825],{"class":803,"line":1824},10,[801,1826,1827],{},"        // Enable lazy loading\n",[801,1829,1831],{"class":803,"line":1830},11,[801,1832,1833],{},"        DataSourceLoadMode.LazyLoading);\n",[801,1835,1837],{"class":803,"line":1836},12,[801,1838,1839],{},"}\n",[17,1841,1842,1843,1846],{},"That's it — simply specify the data source's load mode as lazy loading (",[732,1844,1845],{},"DataSourceLoadMode.LazyLoading",").",[44,1848,1850],{"id":1849},"borders-cell-formatting-and-cell-styles-are-supported-too",[20,1851,1852],{},"Borders, Cell Formatting, and Cell Styles Are Supported Too",[17,1854,1855,1856,1858,1859,1861],{},"You can apply borders and cell formatting from inside the ",[732,1857,1768],{}," interface as well, not just data values. This makes worksheet initialization even faster and gives your app a smoother experience.",[571,1860],{},"The sample below shows how to set borders for every cell.",[793,1863,1865],{"className":1772,"code":1864,"language":1774,"meta":334,"style":334},"public class FlightLogDataSource : IDataSource\u003CFlightlogDataRecord>\n{    \n    ...\n\n    // Modify the GetRecord method as follows\n    public FlightlogDataRecord GetRecord(int row)\n    {\n        FlightlogDataRecord record = initedRecords[row];\n\n        if (record == null)\n        {\n          record = new FlightlogDataRecord(this, row, Logs[row]);\n          initedRecords[row] = record;\n\n          // Apply row borders the first time the row is accessed\n          Worksheet.SetRangeBorders(row, 0, 1, ColumnCount, BorderPositions.Outside, RangeBorderStyle.BlackSolid);\n          Worksheet.SetRangeBorders(row, 0, 1, ColumnCount, BorderPositions.InsideVertical, RangeBorderStyle.GrayDotted);\n        }\n\n        // Return the row data\n        return record;\n    }\n\n    ...\n}\n",[732,1866,1867,1872,1877,1882,1886,1891,1896,1901,1906,1910,1915,1920,1925,1931,1936,1942,1948,1954,1960,1965,1971,1977,1983,1988,1993],{"__ignoreMap":334},[801,1868,1869],{"class":803,"line":804},[801,1870,1871],{},"public class FlightLogDataSource : IDataSource\u003CFlightlogDataRecord>\n",[801,1873,1874],{"class":803,"line":335},[801,1875,1876],{},"{    \n",[801,1878,1879],{"class":803,"line":341},[801,1880,1881],{},"    ...\n",[801,1883,1884],{"class":803,"line":836},[801,1885,833],{"emptyLinePlaceholder":359},[801,1887,1888],{"class":803,"line":916},[801,1889,1890],{},"    // Modify the GetRecord method as follows\n",[801,1892,1893],{"class":803,"line":921},[801,1894,1895],{},"    public FlightlogDataRecord GetRecord(int row)\n",[801,1897,1898],{"class":803,"line":931},[801,1899,1900],{},"    {\n",[801,1902,1903],{"class":803,"line":949},[801,1904,1905],{},"        FlightlogDataRecord record = initedRecords[row];\n",[801,1907,1908],{"class":803,"line":1818},[801,1909,833],{"emptyLinePlaceholder":359},[801,1911,1912],{"class":803,"line":1824},[801,1913,1914],{},"        if (record == null)\n",[801,1916,1917],{"class":803,"line":1830},[801,1918,1919],{},"        {\n",[801,1921,1922],{"class":803,"line":1836},[801,1923,1924],{},"          record = new FlightlogDataRecord(this, row, Logs[row]);\n",[801,1926,1928],{"class":803,"line":1927},13,[801,1929,1930],{},"          initedRecords[row] = record;\n",[801,1932,1934],{"class":803,"line":1933},14,[801,1935,833],{"emptyLinePlaceholder":359},[801,1937,1939],{"class":803,"line":1938},15,[801,1940,1941],{},"          // Apply row borders the first time the row is accessed\n",[801,1943,1945],{"class":803,"line":1944},16,[801,1946,1947],{},"          Worksheet.SetRangeBorders(row, 0, 1, ColumnCount, BorderPositions.Outside, RangeBorderStyle.BlackSolid);\n",[801,1949,1951],{"class":803,"line":1950},17,[801,1952,1953],{},"          Worksheet.SetRangeBorders(row, 0, 1, ColumnCount, BorderPositions.InsideVertical, RangeBorderStyle.GrayDotted);\n",[801,1955,1957],{"class":803,"line":1956},18,[801,1958,1959],{},"        }\n",[801,1961,1963],{"class":803,"line":1962},19,[801,1964,833],{"emptyLinePlaceholder":359},[801,1966,1968],{"class":803,"line":1967},20,[801,1969,1970],{},"        // Return the row data\n",[801,1972,1974],{"class":803,"line":1973},21,[801,1975,1976],{},"        return record;\n",[801,1978,1980],{"class":803,"line":1979},22,[801,1981,1982],{},"    }\n",[801,1984,1986],{"class":803,"line":1985},23,[801,1987,833],{"emptyLinePlaceholder":359},[801,1989,1991],{"class":803,"line":1990},24,[801,1992,1881],{},[801,1994,1996],{"class":803,"line":1995},25,[801,1997,1839],{},[44,1999,2001],{"id":2000},"learn-more",[20,2002,2003],{},"Learn More",[17,2005,2006,2007,2012],{},"The official ReoGrid site has more in-depth documentation and sample code. See the ",[239,2008,2011],{"href":2009,"rel":2010},"https://reogrid.net/document/how-to/fast-load-large-data-with-lazy-load-mode/",[243],"documentation page"," for details.",[44,2014,2016],{"id":2015},"about-reogrid-version-4",[20,2017,2018],{},"About ReoGrid Version 4",[17,2020,2021,2022,2024],{},"ReoGrid has been adopted in many systems by companies in Japan and around the world — particularly in financial systems, manufacturing, and public infrastructure where large datasets are part of daily operations.",[571,2023],{},"Version 4 builds on the experience gained from those deployments and on direct user feedback, delivering significant improvements in both performance and functionality.",[17,2026,2027,2028,2030],{},"Since the release of ReoGrid 4, multiple companies have already adopted it and given strong feedback on its speed, stability, and usability.",[571,2029],{},"We will continue pushing performance higher and providing reliable support for our users.",[17,2032,2033],{},"▼ ReoGrid — details and purchase",[17,2035,2036],{},[239,2037,1675],{"href":1675,"rel":2038},[243],[1341,2040,2041],{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":334,"searchDepth":335,"depth":335,"links":2043},[2044,2045,2046,2047,2048],{"id":1718,"depth":335,"text":1721},{"id":1756,"depth":335,"text":1759},{"id":1849,"depth":335,"text":1852},{"id":2000,"depth":335,"text":2003},{"id":2015,"depth":335,"text":2018},"2025-10-21","With ReoGrid's Lazy Loading feature, you can display hundreds of thousands of rows at lightning speed. Here's how it works and how to implement it.",{},"/blog/en/reogrid-large-data-lazy-loading",{"title":1700,"description":2054},"ReoGrid, a .NET spreadsheet component, can render hundreds of thousands of rows in milliseconds thanks to its Lazy Loading feature. Learn how it achieves high-speed display of large datasets.","blog/en/reogrid-large-data-lazy-loading",[1371,1373,1483,1694,2057,2058,1695],"performance","lazy-loading","/images/articles/a5ed9da817f9b19571529b7e62d7248c.webp","U0Oqy6it-2ft2ouif5npE9j2KmbZc_6M1ijEc0uTpTc",{"id":2062,"title":2063,"author":7,"body":2064,"date":2199,"description":2200,"extension":357,"meta":2201,"navigation":359,"path":2202,"seo":2203,"stem":2212,"tags":7,"thumbnail":7,"__hash__":2213},"blog_en/blog/en/reogrid-excel-like-library.md","Embed Excel in Your App? An \"Excel-Like\" Library for .NET Developers — ReoGrid",{"type":9,"value":2065,"toc":2193},[2066,2072,2077,2080,2086,2092,2095,2109,2112,2118,2121,2124,2129,2143,2146,2152,2155,2172,2175,2181,2184,2187],[2067,2068,2069],"blockquote",{},[17,2070,2071],{},"\"It would be so much easier to use if we could show this data in an Excel-style screen.\"",[2067,2073,2074],{},[17,2075,2076],{},"\"It would be great if we could open and edit Excel files directly inside our app.\"",[17,2078,2079],{},"These developer needs are exactly what an \"Excel-like library\" answers.",[17,2081,2082],{},[696,2083],{"alt":2084,"src":2085},"reogrid-snapshots","/images/reogrid-snapshots.png",[44,2087,2089],{"id":2088},"what-is-an-excel-like-library",[20,2090,2091],{},"What Is an Excel-Like Library?",[17,2093,2094],{},"It's a component that lets you embed an Excel-style spreadsheet view inside your application. Even without Excel installed, your app can deliver full spreadsheet functionality on its own.",[170,2096,2097,2100,2103,2106],{},[173,2098,2099],{},"Enter values into cells",[173,2101,2102],{},"Compute with formulas",[173,2104,2105],{},"Apply borders, merged cells, and cell formatting",[173,2107,2108],{},"Read and write Excel files",[17,2110,2111],{},"In other words, from your users' perspective, it's as if \"Excel is built into the app.\"",[44,2113,2115],{"id":2114},"what-is-reogrid",[20,2116,2117],{},"What Is ReoGrid?",[17,2119,2120],{},"ReoGrid is an Excel-like library for .NET applications. Since its release in 2014, it has been adopted by companies and research projects in Japan and abroad.",[17,2122,2123],{},"Its appeal is in its simple, approachable architecture. Just add a single DLL and you can drop a spreadsheet onto your form right away.",[17,2125,2126,2127,710],{},"But its biggest strength is ",[20,2128,2057],{},[170,2130,2131,2134,2137,2140],{},[173,2132,2133],{},"Smooth scrolling and rendering even with millions of rows",[173,2135,2136],{},"Lightweight, with no unnecessary dependencies",[173,2138,2139],{},"Reads and edits Excel (.xlsx) files",[173,2141,2142],{},"Supports both WinForms and WPF",[17,2144,2145],{},"\"Faster than other Excel-like libraries\" is feedback we hear regularly from real-world projects.",[44,2147,2149],{"id":2148},"where-does-it-shine",[20,2150,2151],{},"Where Does It Shine?",[17,2153,2154],{},"ReoGrid is at its best in scenarios like these:",[170,2156,2157,2160,2163,2166,2169],{},[173,2158,2159],{},"Internal systems that need Excel-style data entry and display",[173,2161,2162],{},"Displaying or printing complex business forms",[173,2164,2165],{},"Importing and exporting Excel files",[173,2167,2168],{},"Turning Excel-based tools into standalone apps for distribution",[173,2170,2171],{},"Using Excel files directly as the application UI",[17,2173,2174],{},"It's used across manufacturing process control, financial-system data viewers, government business forms, and many more domains.",[44,2176,2178],{"id":2177},"summary",[20,2179,2180],{},"Summary",[17,2182,2183],{},"ReoGrid is one of Japan's leading libraries answering these needs — fast, easy to work with, and battle-tested.",[17,2185,2186],{},"If you've ever thought \"I want to open an Excel file inside my app,\" or \"I want to give my app an Excel-like feel,\" give ReoGrid a try.",[17,2188,2189,2190],{},"👉 Learn more: ",[239,2191,1675],{"href":1675,"rel":2192},[243],{"title":334,"searchDepth":335,"depth":335,"links":2194},[2195,2196,2197,2198],{"id":2088,"depth":335,"text":2091},{"id":2114,"depth":335,"text":2117},{"id":2148,"depth":335,"text":2151},{"id":2177,"depth":335,"text":2180},"2025-08-25","[object Object]",{},"/blog/en/reogrid-excel-like-library",{"title":2063,"description":2204},{"An introduction to ReoGrid, an Excel-like library that answers the need":2205,"seo":2206,"tags":2208,"thumbnail":2211},"It would be so much easier to use if we could show this data in an Excel-style screen.",{"title":2063,"description":2207},"An introduction to ReoGrid, a component for embedding spreadsheet functionality into .NET applications. No Excel installation required — provides cell editing, formulas, formatting, and Excel file read/write.",[1371,1373,1483,1694,1695,2209,2210],"winforms","wpf","/images/articles/b85a74e058888008a2fa5c40a1eab4fe.webp","blog/en/reogrid-excel-like-library","XE6hh6lAP4lSi39CxzIMgXDW18znAlS3bHzSjhOnm8E",1777394490453]