public void setName( String newname )
	{
		int modnamelen = 0;
		int oldnamelen = 0;
		if( grbitChr == 0x0 )
		{
			oldnamelen = stCodeName.length();
		}
		else
		{
			oldnamelen = (stCodeName.length() * 2);
		}

		cch = (byte) newname.length();
		byte[] namebytes = newname.getBytes();
		// if (!ByteTools.isUnicode(namebytes)){
		if( !ByteTools.isUnicode( newname ) )
		{
			grbitChr = 0x0;
			modnamelen = newname.length();
		}
		else
		{
			grbitChr = 0x1;
			modnamelen = (newname.length() * 2);
		}
		byte[] newdata = new byte[(getData().length - oldnamelen) + modnamelen];
		try
		{
			if( grbitChr == 0x1 )
			{
				namebytes = newname.getBytes( WorkBookFactory.UNICODEENCODING );
			}
			else
			{
				namebytes = newname.getBytes( WorkBookFactory.DEFAULTENCODING );
			}
		}
		catch( UnsupportedEncodingException e )
		{
			log.warn( "UnsupportedEncodingException in setting sheet name: " + e, e );
		}
		System.arraycopy( namebytes, 0, newdata, 3, namebytes.length );
		newdata[0] = cch;
		newdata[2] = grbitChr;
		setData( newdata );
		init();
	}