SpreadJS Documentation
Creating a Custom Culture
SpreadJS Documentation > Developer's Guide > Managing Data > Creating a Custom Culture

You can modify the culture string and create a custom culture using the CultureInfo class.

The following table lists the class variables, default values, and basic descriptions.

Variable Name Default Value Description
currencySymbol "\u00A4" Dollar is "$"
numberDecimalSeparator "." Decimal point
numberGroupSeparator "," Thousand separator
arrayGroupSeparator ";" Separator for array constant in formula
listSeparator "," Separator for function arguments in formula
aMDesignator "AM"  
pMDesignator "PM"  
abbreviatedMonthNames ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", ""] Formatter is "MMM"
abbreviatedDayNames ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] Formatter is "ddd"
abbreviatedMonthGenitiveNames ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", ""] Formatter is "MMM"
dayNames ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] Formatter is "dddd"
fullDateTimePattern "dddd, dd MMMM yyyy HH:mm:ss" Standard date formatter "F"
longDatePattern "dddd, dd MMMM yyyy" Standard date formatter "D"
longTimePattern "HH:mm:ss" Standard date formatter "T" and "U"
monthDayPattern "MMMM dd" Standard date formatter "M" and "m"
monthNames ["January", "February", "March", "April", "May", "June", "July",
"August", "September", "October", "November", "December", ""]
Formatter is "M" or "MM"
monthGenitiveNames ["January", "February", "March", "April", "May", "June", "July",
"August", "September", "October", "November", "December", ""]
Formatter is "MMMM"
rFC1123Pattern "ddd, dd MMM yyyy HH\':\'mm\':\'ss \'GMT\'" Standard date formatter "R" and "r"
shortDatePattern "MM/dd/yyyy" Standard date formatter "d"
shortTimePattern "HH:mm" Standard date formatter "t"
sortableDateTimePattern "yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss" Standard date formatter "s"
universalSortableDateTimePattern "yyyy\'-\'MM\'-\'dd HH\':\'mm\':\'ss\'Z\'" Standard date formatter "u"
yearMonthPattern "yyyy MMMM" Standard date formatter "y" and "Y"

You can display the custom culture by setting the cell format using the GeneralFormatter class.

Using Code

The following code creates a custom culture and sets a date time formatter for cell (1,0) and (3,0) and a number formatter for cell (0,0).

JavaScript
Copy Code

var myCulture = new GC.Spread.Common.CultureInfo();
myCulture.NumberFormat.currencySymbol = "€"
myCulture.NumberFormat.numberDecimalSeparator = ",";
myCulture.NumberFormat.numberGroupSeparator = ".";
myCulture.NumberFormat.arrayGroupSeparator = ";";
myCulture.NumberFormat.arrayListSeparator = "\\";
myCulture.NumberFormat.listSeparator = ";";

myCulture.DateTimeFormat.amDesignator = "";
myCulture.DateTimeFormat.pmDesignator = "";
myCulture.DateTimeFormat.abbreviatedMonthNames = ["Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez", ""];
myCulture.DateTimeFormat.abbreviatedDayNames = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];
myCulture.DateTimeFormat.abbreviatedMonthGenitiveNames = ["Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez", ""];
myCulture.DateTimeFormat.dayNames = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"];
myCulture.DateTimeFormat.fullDateTimePattern = "dddd, d. MMMM yyyy HH:mm:ss";
myCulture.DateTimeFormat.longDatePattern = "dddd, d. MMMM yyyy";
myCulture.DateTimeFormat.longTimePattern = "HH:mm:ss";
myCulture.DateTimeFormat.monthDayPattern = "dd MMMM";
myCulture.DateTimeFormat.monthNames = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember", ""];
myCulture.DateTimeFormat.monthGenitiveNames = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember", ""];
myCulture.DateTimeFormat.shortDatePattern = "dd.MM.yyyy";
myCulture.DateTimeFormat.shortTimePattern = "HH:mm";
myCulture.DateTimeFormat.yearMonthPattern = "MMMM yyyy";

//add one culture
GC.Spread.Common.CultureManager.addCultureInfo("de-DE", myCulture);
//switch to "de-DE" culture
GC.Spread.Common.CultureManager.culture("de-DE");
var d = new Date();
//With culture
activeSheet.setValue(1, 0, new Date(d.setDate(d.getDate() + 1)));
activeSheet.getCell(1, 0).formatter("mmm");
var dvalue = 12345.6789;
activeSheet.setColumnWidth(0, 200);
activeSheet.setColumnWidth(1, 200);
activeSheet.setColumnWidth(2, 200);
activeSheet.setValue(0, 0, dvalue);
activeSheet.getCell(0, 0).formatter("###,###.00");

activeSheet.setValue(2, 0, new Date(d.setDate(d.getDate() + 1)));
//With culture
activeSheet.getCell(3, 0).formatter("yyyy/mmm/dddd");
activeSheet.setValue(3, 0, new Date());

See Also