C# Excel из текстового поля в ячейку Excel - PullRequest
0 голосов
/ 06 апреля 2020

У меня небольшая проблема с копированием и вставкой из текстового поля в ячейки Excel. В основном, когда я получаю данные с веб-сайта в текстовое поле, я не могу регулярно помещать эти значения в ячейки Excel.

Мои данные:

xxxxxxx-qqq-1111-13661 3********************* 01/02/2020 02/03/2016 0

xyzxyzx-qqq-2222-11067 3********************* 02/03/2016 12/09/2028 0

qazwsge-qqq-1234-01940 6********************* 03/04/2015 09/01/2002 0

qweqwfe-qqq-4567-01941 6********************* 04/05/2013 17/06/2025 0         

Вы можете видеть 4 пробела между столбцами.

Когда я копирую эти данные из текстового поля с помощью метода вручную или [Clipboard.SetText (textBox1.Text)], снова я могу вставить любой лист Excel вручную. Но, когда я выбрал любую ячейку, я выбрал ее и щелкнул по ней один раз, я могу регулярно вставлять свои данные одну за другой. (Когда я дважды щелкаю по ячейке, я не могу вставить данные в ячейки одну за другой, просто остаться в одной ячейке)

Я попробовал этот код, но он дал реакцию, как двойной щелчок.

        Clipboard.SetText(textBox1.Text);
        Excel.Range area = (Excel.Range)xlPage.Cells[2,1];
        area.Value2 = Clipboard.GetText();

У меня вопрос: как я могу работать как руководство с C# кодами? Возможно ли для этой мануальной техники?

С уважением,

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020

Спасибо за ваши ответы,

Я нашел решение. Вы можете попробовать метод PasteSpecial .

Clipboard.SetText(textBox1.Text); Excel.Range area = (Excel.Range)xlPage.Cells[2,1]; area.PasteSpecial();

0 голосов
/ 06 апреля 2020

В Excel VBA вы можете использовать метод TextToColumns, чтобы делать то, что вы хотите. См. https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.tools.excel.namedrange.texttocolumns?view=vsto-2017 для C#. NET пример.

Ниже приведен пример кода для вашего приложения.

Clipboard.SetText(textBox1.Text);
Excel.Range area = (Excel.Range)xlPage.Cells[2,1];
area.Value2 = Clipboard.GetText();

area.TextToColumns(area, Excel.XlTextParsingType.xlDelimited, Excel.XlTextQualifier.xlTextQualifierDoubleQuote, true)
...