Я работаю над надстройкой VSTO, где я пытаюсь скопировать значения одного листа на другой, но вставить только в виде текста. В Excel я могу вручную открыть новый лист, установить ячейки в текстовый формат и скопировать данные поверх. Я пытаюсь сделать это программно. Вот некоторый код:
Worksheet currentSheet; // This is the sheet I'm copying from
Excel.Range currentRange = currentSheet.Cells.Application.Selection.SpecialCells(
Excel.XlCellType.xlCellTypeVisible,
Type.Missing);
Excel.Worksheet newWorksheet; // This is the sheet I'm copyng to
newWorksheet.Cells.NumberFormat = "@"; // set the format of cells to text
currentRange.Copy(); // Copy the data
newWorksheet.Range["A1"].PasteSpecial(XlPasteType.xlPasteValues,
XlPasteSpecialOperation.xlPasteSpecialOperationNone,
System.Type.Missing,
System.Type.Missing);
Это работает нормально, однако иногда данные, с которых я копирую, содержат даты (например, 2019-10-01), и когда я копирую их на новый листоно заканчивается как число, хотя я использую XlPasteType.xlPasteValues
Я просто хочу, чтобы текстовое значение было перенесено в новую ячейку. Это возможно? Спасибо