По поводу переключения раскладки - можно не заморачиваться с ней, а воспользоваться PasteSpecial
X++:
COMExcelDocument_RU excel = new COMExcelDocument_RU();
TextBuffer tb = new TextBuffer();
COM Doc;
COM app;
COM sheet;
COM cell;
;
excel.newFile();
doc = excel.getComDocument();
app = doc.Application();
sheet = app.ActiveSheet();
cell = sheet.Range("B2");
cell.Select();
tb.setText("Строка1\tКолонка2\nСтрока2\tКолонка2\nСтрока3\tКолонка2\nСтрока4\tКолонка2");
tb.toClipboard();
sheet.PasteSpecial(COMVariant::createFromStr("Текст"));