Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 19.05.2015
Сообщений: 17

Неверное количество строк при взаимодействии с Excel

01.03.2016, 17:54. Показов 2052. Ответов 2
Метки 1c, excel (Все метки)

Студворк — интернет-сервис помощи студентам
Возможно немного ошибся темой вопрос скорее о COM и 1С, но не все сразу)
Есть выгрузка из программки к коду, которой я доступа не имею.
Она происходит в формате Excel и содержит различное количество строк.
Далее эти строки я обрабатываю с помощью шарпа.
Затем обработанный файл загружается в 1С(опять же к коду доступа нет).
В 1С происходит разбор строк, который останавливается на excelworksheet.UsedRange.Rows.Count, а данное свойство почему то не соответствует реальному окончанию ячеек с данными. (Это обнаружил разбирая файл в шарпе).
Каким образом устанавливается это свойство? Как мне изменить его значение в своей программе, что бы 1С заканчивала разбор файла там где кончаются данные?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.03.2016, 17:54
Ответы с готовыми решениями:

Вывод графики при взаимодействии двух классов.
Всем привет. Это мой первый проект на C#, более того ещё три месяца назад я совершенно не был знаком с ООП. Предыдущий опыт - написание...

Как поступить, если при сборе данных их количество превысило количество строк на листе Excel?
Макрос собирает данные со всех листов книги на один, для сводного отчёта. С ростом данных столкнулся с проблемой, что все они не влезают на...

Наследник TableLayoutPanel: неверное количество создаваемых строк и столбцов
Хочу создать компонент, наследующий от TableLayoutPanel, но сталкиваюсь с одной проблемой. В конструкторе прописываю кол-во столбцов и...

2
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
01.03.2016, 19:03
Дело в том, что UsedRange, это не обязательно диапазон с данными. Туда также входят пустые ячейки к которым применено форматирование. Даже не знаю как можно отформатировать документ, чтобы это свойство выдавало ожидаемый результат. Возможно, создать новый документ и в него вставить данные из старого так, чтобы вставлялись только строки с данными.
Скопировать только ячейки с данными можно так:
Visual Basic
1
ActiveSheet.Range("A1").End(xlDown).End(xlRight).Copy()
1
0 / 0 / 1
Регистрация: 19.05.2015
Сообщений: 17
02.03.2016, 15:18  [ТС]
Лучший ответ Сообщение было отмечено nsav как решение

Решение

Дело в том, что в данный момент, я делаю так:
C#
1
2
3
4
5
6
7
8
9
10
            var excelApp = new Application();
            var excelappworkbooks = excelApp.Workbooks;
            excelApp.Workbooks.Open(sourceFilePath);
            var excelappworkbook = excelappworkbooks[1];
            
            var excelsheets = excelappworkbook.Worksheets;
            
            var excelworksheet = (Worksheet) excelsheets.Item[1];
            // делаю изменения с полученным excelworksheet
            excelworksheet.SaveAs(destFilePath);
Я так понимаю мне нужно создать новый worksheet в него скопировать только строки с данными, а затем работать уже с его изменением и его сохранять в файл. Но не пойму как использовать приведенный Вами код для такого метода.

Добавлено через 5 часов 23 минуты
Решил проблему. Со свежей головой вышло, что с копированием все довольно просто.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private static void dataCopy(Excel.Worksheet newWorkSheet, Excel.Worksheet oldWorkSheet)
        {
            var i = 1;
            // Рассчитаем количество строк с данными
            while (oldWorkSheet.Range["A" + i].Value2 != null)
            {
                i++;
            }
            // В моей задаче данные содержатся в ячейках с A по N, 
            // выбераем их и копируем в буфер
            oldWorkSheet.Range["A1", "N"+(i-1)].Copy();
            // Вставляем полученные строки данных в новый "лист"
            newWorkSheet.PasteSpecial();
            
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.03.2016, 15:18
Помогаю со студенческими работами здесь

Access - Excel, код не воспринимает количество строк в Excel более 65000
Добрый день! Есть БД (Access), есть файл Excel, где происходит обработка данных. Код ниже работает отлично, НО он не воспринимает...

Ошибка при взаимодействии с MS Office
Здравствуйте, форумчане! при попитке взаймодействовать с MS Office (Word/Excel) выводиться такая ошибка: Прошо помоч в решение...

Количество строк и столбцов в Excel
Всем доброго времени суток.Столкнулся с проблемой чтения из файла excel,а именно определением количества НЕПУСТЫХ строк и столбцов на...

Посчитать количество строк в Excel
Добрый вечер Подскажите, пожалуйста, как посчитать количество строк в книге xlsx (excel 2007) по конкретному полю ? Нужно в результате...

Ошибка PyQt5 при взаимодействии с Python 3.6.4
Здравствуйте! Помогите пожалуйста разобраться. Установил на windows 10 python 3.6.4, затем при помощи pip установил PyQt 5. При...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru