Как Преобразовать Массив в Один Столбец Excel • Дополнительные сведения

Как преобразовать номер столбца (например, 127) в столбец Excel (например, AA)

Как преобразовать числовое число в имя столбца Excel в С#, не используя автоматизацию, получая значение непосредственно из Excel.

Excel 2007 имеет возможный диапазон от 1 до 16384, который представляет собой количество поддерживаемых столбцов. Результирующие значения должны быть в виде имен столбцов excel, например. A, AA, AAA и т.д.

Не забывая, что есть ограничения на количество доступных столбцов. Например, * Excel 2003 (v11) имеет размер IV, 2 ^ 8 или 256 столбцов). * Excel 2007 (v12) имеет размер столбца XFD, 2 ^ 14 или 16384.

Обратите внимание, что пределы строк и столбцов зависят больше от формата файла, чем версия Excel, и могут быть разными для каждой книги. Они могут измениться даже для одной и той же книги, если она сохранена в старом или новом формате.

45 ответов

Этот код работает хорошо. Предполагается, что столбец A — это columnNumber 1. Мне нужно было быстро изменить учетную запись моей системы, используя столбец A в качестве columnNumber 0. Я изменил строку int divndnd на intdivnd = columnNumber + 1; Кит

Возможно, вы могли бы сделать это немного быстрее, удалив конкатенации строк и используя StringBuilder. Я работаю с OpenXML, поэтому мне нужно все, что я могу набрать. +1 хотя, это правильно.

@Jduv только что попробовал, используя StringBuilder . Это занимает примерно вдвое больше времени. Это очень короткая строка (не более 3 символов — Excel 2010 переходит в столбец XFD), поэтому максимум 2 конкатенации строк. (Я использовал 100 итераций перевода целых чисел от 1 до 16384, т.е. столбцов Excel от A до XFD, в качестве теста).

@Graham Я только что попробовал StringBuilder — он примерно на 1,2 медленнее, чем конкатенация строк (не 2 раза). Но все равно медленнее, чем строка.

Почему вы используете ДРУГУЮ переменную (дивиденд), размещенную в стеке? Используйте сам параметр (columnNumber) . Он не является ни ссылкой, ни указателем, поэтому использовать его совершенно безопасно — и он так же быстр, как и другая локальная переменная. PS: параметры являются локальными переменными .

Хотя я опаздываю к игре, код далеко не оптимален. В частности, вам не нужно использовать modulo , вызывать ToString() и apply (int) cast. Учитывая, что в большинстве случаев в мире C # вы начинаете нумерацию с 0, вот моя ревизия: открытая статическая строка GetColumnName (int index) // на основе нуля while (index> = 0); вернуть имя; >

@HermanKan, как мне изменить его так, чтобы он не начинался с нуля. Столбцы Excel не начинаются с нуля, они начинаются с 1. В противном случае это бесполезно.

Я не знаю, как он выбран в качестве правильного ответа. Поскольку для меня это не подходит для базового теста: он дает AZ, когда я сдаю 26. Правильный ответ будет Z. Пожалуйста, исправьте меня, если я что-то упустил.

Привет @ Грэм, это так? Я скопировал этот фрагмент и выполнил без каких-либо изменений в C #, но я не получил Z в качестве ответа, когда дал ввод 26. Это как-то связано с языком?

Привет @ Билл, я забыл ответить снова. Фрагмент, показанный здесь, действительно работал для меня. Я сделал некоторую ошибку при копировании. Дайте мне знать, если у вас возникнут какие-либо проблемы.

Если кому-то нужно сделать это в Excel без VBA, вот как это сделать:

Да, я использую Excel в локали, где; используется вместо, для разделения аргументов функции в Excel. Спасибо за указание на это.

@dayuloli Давно, с тех пор, как этот ответ был написан, вы правы, функция TEXT здесь не служит цели. Обновлю ответ.

Извините, это Python вместо С#, но, по крайней мере, результаты верны:

Я обнаружил ошибку в своем первом сообщении, поэтому решил сесть и сделать математику. Я обнаружил, что числовая система, используемая для идентификации столбцов Excel, не является базой 26, как другой человек. Рассмотрим следующее в базе 10. Вы также можете сделать это с буквами алфавита.

Пространство. S1, S2, S3: S1, S2, S3
. 0, 00, 000. A, AA, AAA . 1, 01, 001. B, AB, AAB . . 9, 99, 999. Z, ZZ, ZZZ Всего состояний в космосе: 10, 100, 1000: 26, 676, 17576
Всего государств. 1110. 18278

Таблицы Excel номеров в отдельных алфавитных пространствах с использованием базы 26. Вы можете видеть, что в общем случае прогрессия состояния пространства a, a ^ 2, a ^ 3. для некоторой базы a, а общее число состояний a + a ^ 2 + a ^ 3 +.

Да, очень хорошее объяснение. Но не могли бы вы также заявить, что это не база 27? Ваше объяснение показывает это при изучении, но быстрое упоминание вверху может спасти несколько других людей.

[expert_bq id=»1570″]Если вы хотите быстро поворачивать данные, чтобы просмотреть их в разных угловых обозначениях, попробуйте создать сводную таблицу для быстрой группировки данных путем перетаскивания полей из области строки в область столбцы или наоборот в списке полей сводной таблицы. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] Как вы правильно догадались, чтобы преобразовать данные в excel из строки в столбец нужно проделать аналогичные операции, что и при преобразовании столбца в строку. Можно воспользоваться как специальной вставкой, так и функцией ТРАНСП.
Как Преобразовать Массив в Один Столбец Excel • Дополнительные сведения

Как преобразовать много столбцов в один столбец в excel, но сохранить 1-ю ячейку каждого столбца и повторить ее в новых строках? CodeRoad

Когда возникает вопрос преобразования в excel столбца в строку, то имеется ввиду перемещение данных находящихся в столбце в строку. Или так называемое транспонирование. Весьма распространенная ситуация при перекладке данных из одного формата в другой.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: