How to Convert Entire Excel Sheet from KrutiDev to Unicode (with Formatting)
Published: September 21, 2025
If you work with Hindi documents, chances are you’ve come across KrutiDev font. It has been the most popular legacy Hindi font for government offices, newspapers, and data entry operators in India for decades. However, in the modern digital ecosystem, Unicode has become the universal standard for representing Hindi and other Indian languages. This shift creates a big challenge: how do we accurately convert large Excel sheets written in KrutiDev into Unicode while preserving formatting?
This comprehensive guide will take you step by step through the entire process of converting entire Excel sheets from KrutiDev to Unicode while keeping table structures, colors, merged cells, bold/italics, and other formatting intact. Whether you are a government employee digitizing records, a student working on data analysis, or a developer building conversion tools, this article is designed to cover everything you need.
Why is KrutiDev to Unicode Conversion Important?
Before we jump into Excel-specific details, let’s understand why KrutiDev conversion is necessary:
- Government Digitization: Many state departments still maintain records in KrutiDev. For centralized systems, data must be converted to Unicode.
- Searchability: Unicode text can be indexed and searched by modern applications, while KrutiDev text cannot.
- Compatibility: Unicode works seamlessly across devices, operating systems, and browsers.
- Data Exchange: Unicode allows Hindi documents to be exchanged internationally without font dependency.
For example, if you send a KrutiDev-based Excel file to someone who doesn’t have KrutiDev font installed,
they will see gibberish characters like äåæç
.
But if you convert it to Unicode, the receiver will see proper Hindi characters like क, ख, ग, घ
.
1. Basics of KrutiDev vs Unicode
KrutiDev is not a Unicode-compliant font. Instead, it maps Devanagari letters to Latin characters. For example:
ç
in KrutiDev →क
in Unicodeå
in KrutiDev →ख
in Unicodeó
in KrutiDev →त
in Unicode
This means that visually the text looks like Hindi, but technically the computer thinks it’s random English symbols. That’s why copy-pasting doesn’t work properly between KrutiDev and Unicode environments.
Real-World Example
Imagine you receive an Excel sheet containing 10,000 student records from a government college. The names are written in KrutiDev:
äåæç (appears as “कृष्ण” when KrutiDev font is applied)
But if you upload this data to an online student portal (which expects Unicode), it shows broken characters. The solution is to convert it into Unicode:
कृष्ण (proper Unicode)
Now, the names can be searched, indexed, and displayed correctly across all devices.
2. Challenges in Converting Excel Sheets
Converting KrutiDev to Unicode in Excel is not as simple as copy-pasting into a converter. Several unique challenges arise:
- Cell-by-Cell Conversion: Excel sheets may contain thousands of cells. Manually converting each is impractical.
- Formatting Preservation: Bold, italics, colors, borders, and merged cells must remain intact.
- Complex Ligatures: Hindi words often use
Reph (Z)
and conjuncts likeत्र, क्ष, ज्ञ
that require advanced rules. - Mixed Content: Some cells may contain both Hindi (KrutiDev) and English text.
- Tables & Formulas: Conversion should not break existing Excel formulas or references.
For instance, a cell containing ₹5000 – äåæç
should become ₹5000 – कृष्ण
in Unicode,
without losing the rupee symbol or numeric formatting.
3. Tools Required for Conversion
To convert entire Excel sheets, we need a combination of tools:
- Python + openpyxl: For reading and writing Excel files with formatting support.
- Mapping Rules: A KrutiDev-to-Unicode mapping array, similar to what professional converters use.
- Conversion Logic: A script that replaces KrutiDev characters with corresponding Unicode characters.
- Django/Flask Interface (optional): For building a web-based solution.
For example, in Python:
from openpyxl import load_workbook
from openpyxl.styles import Font
wb = load_workbook("krutidev_file.xlsx")
ws = wb.active
for row in ws.iter_rows():
for cell in row:
if isinstance(cell.value, str):
cell.value = convert_krutidev_to_unicode(cell.value)
wb.save("unicode_file.xlsx")
This snippet reads each cell, applies a conversion function, and saves the new file.
The convert_krutidev_to_unicode
function would contain the mapping logic.