Syntax
text - (Required) The text or a reference to a cell that contains the text you want to change. If text does not contain any full-width letters, text is not changed.
Usage Notes
This function can convert full width letter symbol, letter and katakana to half width characters.
Support Case
Support Item
Example Character
Target Character
Full-width Letter
SpreadJS
SpreadJS
Full-width symbol
!@#$
!@#$
Full-width katakana
グループシテイ
グループシテイ
import * as React from 'react';
import { createRoot } from 'react-dom/client';
import './styles.css';
import { AppFunc } from './app-func';
import { App } from './app-class';
// 1. Functional Component sample
createRoot(document.getElementById('app')).render(<AppFunc />);
// 2. Class Component sample
// createRoot(document.getElementById('app')).render(<App />);
import * as React from 'react';
import { SpreadSheets, Worksheet } from '@mescius/spread-sheets-react';
import GC from '@mescius/spread-sheets';
import './styles.css';
export function AppFunc() {
const initSpread = (spread) => {
spread.suspendPaint();
let sheet0 = spread.getSheet(0);
sheet0.name("ASC usage");
setUsage(sheet0);
let sheet1 = spread.getSheet(1);
sheet1.name("ASC table");
setASCformulaInSheet(sheet1);
spread.resumePaint();
}
const setUsage = (sheet) => {
setTable(sheet);
sheet.setValue(3, 2, "Furigana (pronunciation of kanji name)");
sheet.setValue(4, 2, "Address");
sheet.setValue(5, 2, "Phone number");
sheet.setValue(6, 2, "Postal code");
sheet.setValue(3, 3, "ブドウ タロウ");
sheet.setValue(4, 3, "紫山3-1-4");
sheet.setValue(5, 3, "022-777-8210");
sheet.setValue(6, 3, "981-3205");
setFormula(sheet);
}
const setTable = (sheet) => {
sheet.tables.add("DBCS", 2, 2, 5, 3);
sheet.setColumnWidth(2, 165);
sheet.setColumnWidth(3, 165);
sheet.setColumnWidth(4, 185);
sheet.setRowHeight(3, 50);
sheet.setRowHeight(4, 50);
sheet.setRowHeight(5, 50);
sheet.setRowHeight(6, 50);
sheet.setValue(2, 2, "Usage");
sheet.setValue(2, 3, "Example Characters");
sheet.setValue(2, 4, "Target Characters");
var style = new GC.Spread.Sheets.Style();
style.wordWrap = true;
style.hAlign = GC.Spread.Sheets.HorizontalAlign.center;
style.vAlign = GC.Spread.Sheets.VerticalAlign.center;
sheet.setStyle(3, 2, style);
sheet.setStyle(4, 2, style);
sheet.setStyle(5, 2, style);
sheet.setStyle(6, 2, style);
}
const setFormula = (sheet) => {
sheet.setFormula(3, 4, "=ASC(D4)");
sheet.setFormula(4, 4, "=ASC(D5)");
sheet.setFormula(5, 4, "=ASC(D6)");
sheet.setFormula(6, 4, "=ASC(D7)");
sheet.setFormula(7, 4, "=ASC(D8)");
sheet.setFormula(8, 4, "=ASC(D9)");
sheet.setFormula(9, 4, "=ASC(D10)");
sheet.setFormula(10, 4, "=ASC(D11)");
}
const setASCformulaInSheet = (sheet) => {
let charCode = 12449;
let rowIndexOffset = 1;
sheet.setValue(0, 0, "Full width katakana:");
setASC(sheet, rowIndexOffset, charCode, 90); //FULL width katakana
charCode = 65281;
rowIndexOffset += 6;
sheet.addSpan(6, 0, 1, 4);
sheet.setValue(6, 0, "Full width symbol and letter:");
setASC(sheet, rowIndexOffset, charCode, 94); // FW symbol and letter
}
const setASC = (sheet, rowIndexOffset, charCodeStart, count) => {
let str = "", i = 0;
for (i; i < count; i++) {
str = String.fromCharCode(charCodeStart + i);
let rowIndex = Math.floor(i / 20) + rowIndexOffset;
let columnIndex = i % 20;
sheet.setFormula(rowIndex, columnIndex, `=ASC("${str}")`);
}
}
return <div class="sample-tutorial">
<div class="sample-spreadsheets">
<SpreadSheets workbookInitialized={spread => initSpread(spread)}>
<Worksheet>
</Worksheet>
<Worksheet>
</Worksheet>
</SpreadSheets>
</div>
</div>;
}
import * as React from 'react';
import { SpreadSheets, Worksheet } from '@mescius/spread-sheets-react';
import GC from '@mescius/spread-sheets';
import './styles.css';
const Component = React.Component;
export class App extends Component {
constructor (props) {
super(props);
}
render () {
return <div class="sample-tutorial">
<div class="sample-spreadsheets">
<SpreadSheets workbookInitialized={spread => this.initSpread(spread)}>
<Worksheet>
</Worksheet>
<Worksheet>
</Worksheet>
</SpreadSheets>
</div>
</div>;
}
initSpread (spread) {
spread.suspendPaint();
let sheet0 = spread.getSheet(0);
sheet0.name("ASC usage");
this.setUsage(sheet0);
let sheet1 = spread.getSheet(1);
sheet1.name("ASC table");
this.setASCformulaInSheet(sheet1);
spread.resumePaint();
}
setUsage (sheet) {
this.setTable(sheet);
sheet.setValue(3, 2, "Furigana (pronunciation of kanji name)");
sheet.setValue(4, 2, "Address");
sheet.setValue(5, 2, "Phone number");
sheet.setValue(6, 2, "Postal code");
sheet.setValue(3, 3, "ブドウ タロウ");
sheet.setValue(4, 3, "紫山3-1-4");
sheet.setValue(5, 3, "022-777-8210");
sheet.setValue(6, 3, "981-3205");
this.setFormula(sheet);
}
setTable (sheet) {
sheet.tables.add("DBCS", 2, 2, 5, 3);
sheet.setColumnWidth(2, 165);
sheet.setColumnWidth(3, 165);
sheet.setColumnWidth(4, 185);
sheet.setRowHeight(3, 50);
sheet.setRowHeight(4, 50);
sheet.setRowHeight(5, 50);
sheet.setRowHeight(6, 50);
sheet.setValue(2, 2, "Usage");
sheet.setValue(2, 3, "Example Characters");
sheet.setValue(2, 4, "Target Characters");
var style = new GC.Spread.Sheets.Style();
style.wordWrap = true;
style.hAlign = GC.Spread.Sheets.HorizontalAlign.center;
style.vAlign = GC.Spread.Sheets.VerticalAlign.center;
sheet.setStyle(3, 2, style);
sheet.setStyle(4, 2, style);
sheet.setStyle(5, 2, style);
sheet.setStyle(6, 2, style);
}
setFormula (sheet) {
sheet.setFormula(3, 4, "=ASC(D4)");
sheet.setFormula(4, 4, "=ASC(D5)");
sheet.setFormula(5, 4, "=ASC(D6)");
sheet.setFormula(6, 4, "=ASC(D7)");
sheet.setFormula(7, 4, "=ASC(D8)");
sheet.setFormula(8, 4, "=ASC(D9)");
sheet.setFormula(9, 4, "=ASC(D10)");
sheet.setFormula(10, 4, "=ASC(D11)");
}
setASCformulaInSheet (sheet) {
let charCode = 12449;
let rowIndexOffset = 1;
sheet.setValue(0, 0, "Full width katakana:");
this.setASC(sheet, rowIndexOffset, charCode, 90); //FULL width katakana
charCode = 65281;
rowIndexOffset += 6;
sheet.addSpan(6, 0, 1, 4);
sheet.setValue(6, 0, "Full width symbol and letter:");
this.setASC(sheet, rowIndexOffset, charCode, 94); // FW symbol and letter
}
setASC (sheet, rowIndexOffset, charCodeStart, count) {
let str = "", i = 0;
for (i; i < count; i++) {
str = String.fromCharCode(charCodeStart + i);
let rowIndex = Math.floor(i / 20) + rowIndexOffset;
let columnIndex = i % 20;
sheet.setFormula(rowIndex, columnIndex, `=ASC("${str}")`);
}
}
}
<!doctype html>
<html style="height:100%;font-size:14px;">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="$DEMOROOT$/en/react/node_modules/@mescius/spread-sheets/styles/gc.spread.sheets.excel2013white.css">
<!-- SystemJS -->
<script src="$DEMOROOT$/en/react/node_modules/systemjs/dist/system.src.js"></script>
<script src="systemjs.config.js"></script>
<script>
System.import('$DEMOROOT$/en/lib/react/license.js').then(function () {
System.import('./src/app');
});
</script>
</head>
<body>
<div id="app"></div>
</body>
</html>
.sample-tutorial {
position: relative;
height: 100%;
overflow: hidden;
}
.sample-spreadsheets {
width: 100%;
height: 100%;
overflow: hidden;
float: left;
}
.options-container {
float: right;
width: 280px;
padding: 12px;
height: 100%;
box-sizing: border-box;
background: #fbfbfb;
overflow: auto;
}
.option-row {
font-size: 14px;
padding: 5px;
margin-top: 10px;
}
#switchAutoMergeMode {
margin: 10px 0px;
}
body {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
#app {
height: 100%;
}
(function (global) {
System.config({
transpiler: 'plugin-babel',
babelOptions: {
es2015: true,
react: true
},
meta: {
'*.css': { loader: 'css' }
},
paths: {
// paths serve as alias
'npm:': 'node_modules/'
},
// map tells the System loader where to look for things
map: {
'@mescius/spread-sheets': 'npm:@mescius/spread-sheets/index.js',
'@mescius/spread-sheets-react': 'npm:@mescius/spread-sheets-react/index.js',
'@grapecity/jsob-test-dependency-package/react-components': 'npm:@grapecity/jsob-test-dependency-package/react-components/index.js',
'react': 'npm:react/cjs/react.production.js',
'react-dom': 'npm:react-dom/cjs/react-dom.production.js',
'react-dom/client': 'npm:react-dom/cjs/react-dom-client.production.js',
'scheduler': 'npm:scheduler/cjs/scheduler.production.js',
'css': 'npm:systemjs-plugin-css/css.js',
'plugin-babel': 'npm:systemjs-plugin-babel/plugin-babel.js',
'systemjs-babel-build':'npm:systemjs-plugin-babel/systemjs-babel-browser.js'
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
src: {
defaultExtension: 'jsx'
},
"node_modules": {
defaultExtension: 'js'
},
}
});
})(this);