88 / 79 / 22
Регистрация: 02.07.2013
Сообщений: 628
|
|
1 | |
Работа с Excel c нуля07.01.2017, 16:14. Показов 58874. Ответов 27
Метки нет (Все метки)
здравствуйте, я кое-как освоил работу с С# вот у меня возникло желание написать программу работающую с данными, которые записаны в Excel таблицу. в связи с этим вопрос как осуществить следующие действия: открыть таблицу, узнать ее размер, слить данные из ячейки с координатами XY или записать в таблицу что-то,
П.С. я никаких dll не умею ставить, если ваше решение содержит стороннюю dll то пожалуйста объясните, я много гуглил, но не нашел ничего понятного мне. нашел решение через COM Interop, но у меня не компилируется using Excel = Microsoft.Office.Interop.Excel; и в доступных ссылках нет Microsoft.Office.Interop.Excel чтобы подключить нужную библиотеку, но я вообще не настаиваю чтобы решение было через эту библиотеку. мне бы хоть как-то. Добавлено через 3 часа 59 минут народ, хелп, нужна помощь, как вы открываете Excel файлы? в интеренте разбирают Microsoft.Office.Interop.Excel но я нигде не могу найти библиотеку чтобы использовать это. подскажите как эту проблему решить можно, очень надо из экселя данные брать, а не могу.если не знаете как с этим вариантом быть, то напишите любой известный вам способ.
0
|
07.01.2017, 16:14 | |
Ответы с готовыми решениями:
27
Работа с документами Excel без Microsoft.Office.Interop.Excel Работа с Excel (нет доступа к пространству имен Excel) Экспорт в Excel: Прекращена работа программы "Microsoft Excel" Cколько чисел больше нуля, меньше нуля и среднее всех отрицательных чисел |
236 / 75 / 24
Регистрация: 12.05.2010
Сообщений: 216
|
|
07.01.2017, 16:50 | 2 |
Библиотека Microsoft.Office.Interop.Excel устанавливается обычно вместе с Microsoft Office, если ее не было установлено вместе с офисом, то ее можно скачать отдельно https://www.visualstudio.com/vs/office-tools/
0
|
88 / 79 / 22
Регистрация: 02.07.2013
Сообщений: 628
|
|
08.01.2017, 00:11 [ТС] | 3 |
а какие-то ссылки(referensis) надо добавить?
0
|
Warrior
500 / 427 / 177
Регистрация: 23.11.2014
Сообщений: 932
|
|
08.01.2017, 05:30 | 4 |
Вот неплохая библиотека https://www.nuget.org/packages/EPPlus
Легко установить через PM> Install-Package EPPlus Тут можно посмотреть семплы и документацию https://epplus.codeplex.com/releases/view/625020
0
|
88 / 79 / 22
Регистрация: 02.07.2013
Сообщений: 628
|
||||||
08.01.2017, 13:33 [ТС] | 6 | |||||
библиотеку using Excel = Microsoft.Office.Interop.Excel; удалось корректно подключить. помогите написать консольное приложение, которе будет с Excel файла считывать численные данные с таких-то ячеек?
Чтобы в ячейку А1 что-то записать надо написать такой-то код:
workSheet.Cells[1, "A"] = "ID Number"; в общем вот эта команда как я понял записывает данные, поподробнее можите написать мне как теперь считать из готового файла данные в такой-то ячейке?
1
|
88 / 79 / 22
Регистрация: 02.07.2013
Сообщений: 628
|
||||||
08.01.2017, 15:52 [ТС] | 7 | |||||
методом тыка кое-как нашел такой способ:
ни на русском ни на английском нет описания методов. что с этим делать? может кто знает как работают эти методы?
0
|
88 / 79 / 22
Регистрация: 02.07.2013
Сообщений: 628
|
|
08.01.2017, 16:10 [ТС] | 8 |
на вопрос что добавлять в референсах на скриншоте показано, почему у меня так, а у вас не так, и почему никто не может делать скрины в ответ мне не ясно. где мне искать эту References: Microsoft.Office.Interop.Excel?. кнопка принт скринт и программа паинт есть у всех. а постить скрины можно по этой кнопке: Легко установить через PM> Install-Package EPPlus эммм что легко? добавь ясности, сделай скриншот. мне предлагают почитать по адресу: https://epplus.codeplex.com/releases/view/625020, но там фигня понаписана, я даже не зная должным образом инглиш вижу что там написана далеко не документация. можно мне хоть чуть ясности добавить в ответы? писанина это конечно хорошо, но целиком работающий код и скрины в работе с VS намного предпочтительнее. если, конечно хотите помочь.
0
|
.NET senior
440 / 358 / 137
Регистрация: 23.09.2016
Сообщений: 980
|
|
08.01.2017, 16:37 | 9 |
Нажать на кнопочку "Documentation" справа от "Downloads" - это, конечно, сложно, я понимаю. "Не барское это дело - документацию читать", так, что ли?
Помочь - может быть, но если будете продолжать общаться в таком тоне - желание пропадёт даже у законченных альтруистов.
0
|
88 / 79 / 22
Регистрация: 02.07.2013
Сообщений: 628
|
|
08.01.2017, 17:21 [ТС] | 10 |
честное слово, не хотел никого обидеть, я просто не получаю ни одного ответа на свои вопросы, который мне хоть как-то бы помог уже 2 дня, знакомых людей, умеющих прогать у меня нет, поэтому стараюсь максимально понятно уточнять в каком виде хочу их получить и почему не годятся ответы указанные выше. если я скажу ОК ответы годятся, то тему все будут считать закрытой, хотя я ничего не понял. как мне добиться конкретики? потому что если и дальше буду видеть общие рекомендации, то пользы от них не будет никакой. в идеале бы если нашелся какой-то хороший мануал хоть на инглише. а еще желательно чтобы показали на готовом и работающем коде, как надо делать.
вот я открыл "документацию" это ничего для меня не прояснило. возможно она где-то глубже зарыта? я не вижу. но даже если и так, то как мне поставить ту библиотеку, для которой должна быть эта документация? еще раз прошу помочь разобраться как работать с Excel через C# на примере консольного приложения. давайте разговор сделаем предметным и решим конкретную задачу(с виду простая). есть фаил экселевский с именем file лежит он в папке программы. в нем в первом столбце записано в нескольких ячейках несколько цифр. надо их проссумировать и вывести в консоли ответ. зарание число цифр не известно.
0
|
Warrior
500 / 427 / 177
Регистрация: 23.11.2014
Сообщений: 932
|
||||||
08.01.2017, 17:43 | 11 | |||||
Сообщение было отмечено golosalex как решение
Решение
Для тех кто в танке вот документация https://epplus.codeplex.com/downloads/get/1591095
Если вы не знаете как пользоваться visual studio и язык C# начать нужно именно с этого а затем разбирать работу с экселем, пример со считыванием с ячейки я уверен вам нечего не даст. Какой смысл использовать библиотеки если для того что бы понять как их нужно использовать надо перелопатить всю документацию, обычно смотрят getting started, use case и IntelliSense если не чего непонятно то ищут другие..
1
|
Warrior
500 / 427 / 177
Регистрация: 23.11.2014
Сообщений: 932
|
|
08.01.2017, 18:07 | 12 |
Вот тоже неплохая либа https://github.com/ClosedXML/ClosedXML
примеры https://github.com/ClosedXML/ClosedXML/wiki Вот можно посмотреть другие пакеты https://www.nuget.org/packages?q=excel
1
|
88 / 79 / 22
Регистрация: 02.07.2013
Сообщений: 628
|
|
08.01.2017, 19:20 [ТС] | 13 |
вот теперь понял что делать. если по дороге возникнут вопросы буду спрашивать. спасибо.
0
|
88 / 79 / 22
Регистрация: 02.07.2013
Сообщений: 628
|
|
11.01.2017, 16:38 [ТС] | 14 |
понял как считывать и как записывать с помощью той библиотеке в которой вы привели мне работающий пример теперь вот такой вопрос: если в ячейке записана формула, то ее результат не будет обновляться до того момента как я открою эксель вручную, т.е. если в ячейке (А1) записанно 100, а в ячейке (A2) записано = A1*2; то в шарпе на консоле после того как я изменю значение в ячейке А1 на 1000, я все равно получу старый результат: 200, как заставить эксель формулы обновлять?
0
|
Warrior
500 / 427 / 177
Регистрация: 23.11.2014
Сообщений: 932
|
||||||
11.01.2017, 21:55 | 15 | |||||
golosalex, что то вы делаете не то вот все работает
0
|
88 / 79 / 22
Регистрация: 02.07.2013
Сообщений: 628
|
|
12.01.2017, 09:35 [ТС] | 16 |
ws.Cells["A2"].Calculate(); я так понимаю эта строка заставляет выполнить формулы в ячейке "A2". как раз ее я и искал
хотел подробнее узнать про Cells: почему квадратные скобки? как не одну ячейку выделить а произвольный кусок? как считать весь столбец в массив или список, если не знаешь длины ексель файла?
0
|
.NET senior
440 / 358 / 137
Регистрация: 23.09.2016
Сообщений: 980
|
||||||
12.01.2017, 10:32 | 17 | |||||
Потому что это синтаксис индексаторов в C#.
воспользоваться форматом записи интервала:
0
|
88 / 79 / 22
Регистрация: 02.07.2013
Сообщений: 628
|
|
12.01.2017, 10:48 [ТС] | 18 |
а можно потом выделенный кусок (допустим A1:A10) в массив запихнуть? какой-нибудь готовой функцией
0
|
Warrior
500 / 427 / 177
Регистрация: 23.11.2014
Сообщений: 932
|
||||||
12.01.2017, 11:07 | 19 | |||||
0
|
.NET senior
440 / 358 / 137
Регистрация: 23.09.2016
Сообщений: 980
|
||||||
12.01.2017, 11:29 | 20 | |||||
golosalex, например, вот так:
Ещё один вариант получения значений из столбца
1
|
12.01.2017, 11:29 | |
12.01.2017, 11:29 | |
Помогаю со студенческими работами здесь
20
Работа с Excel' ем работа с excel работа с excel в C# работа с excel Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |