Библиотека excel c - IT Справочник
Llscompany.ru

IT Справочник
16 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Библиотека excel c

Работа с Excel с помощью C# (Microsoft.Office.Interop.Excel)

Оставляю заметку по работе с Excel с помощью C#.

Привожу фрагменты кода, которые искал когда-то сам для работы с Excel документами.

Наработки очень пригодились в работе для формирования отчетности.

Прежде всего нужно подключить библиотеку Microsoft.Office.Interop.Excel.

Visual Studio здесь довольно старой версии. Если у вас версия новая, отличаться будет только вид окна.

Далее создаем псевдоним для работы с Excel:

using Excel = Microsoft.Office.Interop.Excel;

Расстановка рамок.

Расставляем рамки со всех сторон:

Цвет рамки можно установить так:

Выравнивания в диапазоне задаются так:

Формулы

Определим задачу: получить сумму диапазона ячеек A4:A10.

Для начала снова получим диапазон ячеек:

Excel.Range formulaRange = sheet.get_Range(sheet.Cells[4, 1], sheet.Cells[9, 1]);

Далее получим диапазон вида A4:A10 по адресу ячейки ( [4,1]; [9;1] ) описанному выше:

string adder = formulaRange.get_Address(1, 1, Excel.XlReferenceStyle.xlA1, Type.Missing, Type.Missing);

Теперь в переменной adder у нас хранится строковое значение диапазона ( [4,1]; [9;1] ), то есть A4:A10.

Выделение ячейки или диапазона ячеек

Так же можно выделить ячейку или диапазон, как если бы мы выделили их мышкой:

Авто ширина и авто высота

Чтобы настроить авто ширину и высоту для диапазона, используем такие команды:

Получаем значения из ячеек

Чтобы получить значение из ячейки, используем такой код:

Добавляем лист в рабочую книгу

Чтобы добавить лист и дать ему заголовок, используем следующее:

Добавление разрыва страницы

Сохраняем документ

Как открыть существующий документ Excel

Комментарии

При работе с Excel с помощью C# большую помощь может оказать редактор Visual Basic, встроенный в Excel.

Для этого в настройках ленты надо добавить пункт «Разработчик». Далее начинаем запись макроса, производим действия и останавливаем запись.

Далее заходим в редактор Visual Basic и смотрим код, который туда записался:

В данном макросе записаны все действия, которые мы выполнили во время его записи. Эти методы и свойства можно использовать в C# коде.

Данный метод так же может оказать помощь в формировании относительных формул, например, выполнить сложение чисел, находящиеся слева от текущей ячейки на 4 столбца, и т.п. Пример:

Так же во время работы может возникнуть ошибка: метод завершен неверно. Это может означать, что не выбран лист, с которым идет работа.

Чтение файлов Excel из C#

есть ли бесплатная библиотека с открытым исходным кодом для чтения файлов Excel (.xls) непосредственно из программы c#?

Не нужно быть слишком причудливым, просто выберите рабочий лист и прочитайте данные в виде строк. До сих пор я использовал функцию экспорта в текст Unicode Excel и анализ полученного файла (с разделителями табуляции), но я хотел бы исключить ручной шаг.

30 ответов

Это то, что я обычно использую. Это немного отличается, потому что я обычно вставляю AsEnumerable () при редактировании таблиц:

поскольку это позволяет мне использовать LINQ для поиска и построения структур из полей.

Если это просто данные, содержащиеся в файле Excel, вы можете прочитать данные через ADO.NET — . См. строки подключения, перечисленные здесь:

Update: тогда вы можете просто прочитать рабочий лист через что-то вроде select * from [Sheet1$]

ADO.NET подход быстрый и простой, но у него есть несколько причуд, о которых вы должны знать, особенно в отношении того, как обрабатываются типы данных.

эта превосходная статья поможет вам избежать некоторых распространенных ошибок: http://blog.lab49.com/archives/196

Это то, что я использовал для Excel 2003:

Как насчет Excel Data Reader?

Я использовал в нем гнев, в производственной среде, чтобы вытащить большие объемы данных из различных файлов Excel в SQL Server Compact. Он работает очень хорошо и довольно прочно.

вот код, который я написал на C#, используя .NET 1.1 несколько лет назад. Не уверен, что это будет именно то, что вам нужно (и, возможно, не мой лучший код :)).

Koogra-это компонент с открытым исходным кодом, написанный на C#, который читает и пишет файлы Excel.

а ты конкретно спроси .xls, подразумевая более старые форматы файлов, для форматов OpenXML (например, xlsx) я настоятельно рекомендую OpenXML SDK (http://msdn.microsoft.com/en-us/library/bb448854.aspx)

некоторое время назад я много читал из файлов Excel на C#, и мы использовали два подхода:

  • COM API, где вы получаете доступ к объектам Excel напрямую и манипулировать ими с помощью методов и свойств
  • драйвер ODBC, который позволяет использовать Excel как базу данных.

последний подход был много быстрее: чтение большой таблицы с 20 столбцами и 200 строками займет 30 секунд через COM и полсекунды через ODBC. Так Что Я . порекомендовал бы подход к базе данных, если все, что вам нужно, это данные.

ExcelMapper-это инструмент с открытым исходным кодом (http://code.google.com/p/excelmapper/), которые можно использовать для чтения листов Excel Как строго типизированных объектов. Он поддерживает форматы xls и xlsx.

Я хочу показать простой метод для чтения файла xls /xlsx.Сеть. Я надеюсь, что следующее будет полезным для вас.

не бесплатно, но с последним офисом есть очень хорошая автоматизация .Net API. (в течение долгого времени был API, но был неприятным COM) вы можете делать все, что хотите / нужно в коде, пока приложение Office остается скрытым фоновым процессом.

Простите меня, если я здесь не на базе, но разве это не то, что офис Пиа для?

в последнее время, частично, чтобы стать лучше в LINQ. Я использую API автоматизации Excel для сохранения файла в виде таблицы XML, а затем обрабатываю этот файл с помощью LINQ to XML.

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

Читать еще:  Генератор отчетов excel

SmartXLS является еще одним компонентом электронной таблицы excel, который поддерживает большинство функций диаграмм excel, движков формул и может читать/писать формат excel2007 openxml.

компонент .NET Excel Reader .NET может удовлетворить ваши требования. Это достаточно хорошо для чтения файлов XLSX и XLS. Так что попробуйте:

Я рекомендую библиотеку FileHelpers, которая является бесплатной и простой в использовании библиотекой .NET для импорта / экспорта данных из EXCEL, фиксированной длины или разделенных записей в файлах, строках или потоках + больше.

вы можете попробовать использовать это решение с открытым исходным кодом, что делает работу с Excel намного чище.

SpreadsheetGear является удивительным. Да, это расходы,но по сравнению с этими другими решениями это стоит того. Это быстро, надежно, очень всесторонне, и я должен сказать, что после использования этого продукта в моей полной программной работе более полутора лет, их поддержка клиентов фантастическая!

решение, которое мы использовали, необходимо, чтобы:

  • разрешить Читать/Писать из Excel производимых файлов
  • быть быстро в производительности (не так, как с помощью COMs)
  • быть MS Office независимая (необходимо использовать без клиентов с установленным MS Office)
  • быть свободный или Открыть Источник (но активно развивается)

есть несколько вариантов, но мы нашли NPoi (.NET-порт давно существующего Java Poi проект с открытым исходным кодом), чтобы быть лучшим: http://npoi.codeplex.com/

Она также позволяет работать с .док и. ppt-формат файла

Если это просто табличные данные. Я бы рекомендовал файл data helpers by Marcos Melli который можно скачать здесь.

Библиотека excel c

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Некоторое время назад задался целью найти готовую библиотеку для чтения/записи файлов .xls и .xlsx без установленного приложения Excel
Если Excel установлен, то кажется, что всё просто. Однако: 1) он должен быть установлен 2) есть разница работы с разными версиями офиса — зависим от версии 3) запись больших таблиц работает очень медленно. и т.д., на этом проблемы не заканчиваются.
После серьёзного изучения вопроса, понял, что действительно стоящего варианта — не найдено. Существует несколько библиотек, как свободных, так и платных. Но ни те, ни другие — не удовлетворяют. С чтением таблиц — проблем нет, это делается, например, через MS Jet. А вот запись, тем более — с форматированием, вызывает вопросы.
Задача «минимум» для такой библиотеки:
1) запись файла (например, .xlsx) из dataset — одним вызовом.
2) автоматический подбор ширины столбцов по содержимому (AutoFit)
3) выбор шрифта (хотя бы одного на весь файл) и его размера
4) установка автофильтра на всё содержимое
т.е. получаем файл, готовый к просмотру и к обработке данных без лишних телодвижений вручную. Желательно, чтобы использование библотеки выглядело как можно более лаконично в коде.

Предлагаю обсудить, кто чем пользуется, какие библиотеки рекомендует.

Пробовал EPPlus 2.9, GemBox.Spreadsheet. На крайний случай сгодится, но не очень.

Во многих библиотеках присутствует один и тот же глюк: формат «# ##0,##» до Excel доходит как «# ##0,##».

Generates Excel files from WinForms, WebForms ASP.NET, PocketPC applications, webservices on the fly and fast with FlexCel Studio for .NET
Native .NET components (no additional OLE/dlls required) allowing to read, create and modify native Excel .XLS and .XLSX files without needing to have Excel installed.
Supported Excel 97 .XLS file format and Excel 2007/2010 .XLSX format
Native PDF file export
Exceptionally fast and solid hand tuned .XLS & .XLSX engine capable of generating thousands files per minute.
Able to modify .XLS files and keep almost everything existing on the original file, from macros to activex objects.
Recalculation of more than 200 Excel functions.
Ability to read and write encrypted .XLS files.
Completely written in C# 100% managed code, with NO interop and NO p/invokes!
Runs on .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, Mono and the .NET Compact Framework (xlsx support requires .NET 3.5).
Templates can be stored inside your executable file, in a database or in any place from where you can access it as a stream.
Extensive API is available with which you can programmatically write and read files, with formatting info, images comments, etc.
Export to HTML in HTML 4.01 strict or XTHML 1.1 and fully standards compliant
Report Engine that allows to create complex reports using Excel as your report designer, so your final users can modify them. You can use images/comments/conditional formats/merged cells/pivot tables/charts and almost anything you can think of on those reports.

using System.IO;
using System.Globalization;
using System.Drawing;
using FlexCel.Core;
using FlexCel.XlsAdapter;

public void CreateAndSaveFile()
<
XlsFile xls = new XlsFile(true);
CreateFile(xls);

//Save the file as XLS
xls.Save(openFileDialog1.FileName);
>

public void CreateFile(ExcelFile xls)
<
xls.NewFile(1); //Create a new Excel file with 1 sheet.
xls.ActiveSheet = 1; //Set the sheet we are working in.
>
Все имеется. Куча примеров.Могу кинуть на обменник FS. правда немного староват дистр.

Вообще-то не помешает, по крайней мере поизучать. Я сам кое-что попробовал, но форматирование — не прошло, вообще. Не понял пока что не так.

Кстати, YuriyRR, может ты заодно знаешь почему все библиотеки (может не все, но всё что я пробовал — это много) корёжат формат, заданный строкой, я тут уже выше писал:

Вероятно ожидают увидеть формат в английской локали, где в качестве десятичного разделителя используется тчк, а не зпт. Соответственно эскейпят все прочие символы. Или, как вариант, у тебя на машине локаль неправильная стоит.

Читать еще:  Excel на мак

Добавлено:
Когда-то давно делал репорты в excel на asp.net вообще без библиотек:

— сохраняешь готовый отформатированный пример репорта с одной строчкой в xml
— копи-пастишь как есть в aspx
— находишь строчку с данными и делаешь итерацию по датасету
— бинго! — красивый репорт за 15 мин

Зпт. у них активно используется, как разделитель групп разрядов

Правильная, хотя может быть и нестандартная (что тут вообще стандарт?):
Десятичный разделитель — зпт.
Разделитель групп разрядов — пробел

Возможно англоязычные разработчики не догадываются, что русские могут использовать запятую таким странным образом

Имеет смысл проверить на машине с en-US и с английским же форматом, а потом уже смотреть где валится на русской, да еще и с хитрой локалью.

Обработка xlsx файлов на C++

Добрый день! Господа буду признателен вам за пассивную помощь.
В чём суть вопроса: изучаю я С++, читаю книги, смотрю видео уроки. Накопилось достаточно теоретических знаний (как мне кажется), но с практикой всё очень плохо.
Суть моего вопроса в следующем: у меня есть задание которое я хочу выполнить сам с минимальной помощью со стороны, но не знаю с какой стороны к нему подойти

Задача заключается в следующем: нужно написать консольное windows приложение которое будет получать на вход два параметра пути к входному(.xlsx) и выходному файлу(выдавать ошибку если значения не верны) и обрабатывать файл.

Как я думаю реализовывать:
0. подключаю -для работы с файлами; -для входного файла для выходного;
1. Две строки для параметров входного файла и выходного файлов; (обработка ошибок для входного файла)
2. два объекта по одному для каждого класса ifstream /объект/ (/путь в переменной/) оfstream /объект/ (/путь в переменной/)
.

Ошибка №1: кроме fstream необходимо включать заголовки iostream и string .

Ошибка №2: отсутствует тип возвращаемого значения функции main . Должно быть int main() < . >.

Ошибка №3: cout «Входной файл:»; — отсутствует оператор вывода в поток. Должно быть так: cout .

Ошибка №4: не хватает точки с запятой после getline (cin, dirIN) .

компилятор будет считать некорректным определением функции. (С ofstream OUTdir всё аналогично.)

Выражение ifstream INdir (dirIN); — это определение переменной типа входного файлового потока с инициализацией (т.е. при исполнении этого выражения будет попытка открыть файл с именем, указанным в dirIN ). Затем в if проверяем был ли корректно открыт поток. Здесь используется неявное преобразование переменной типа входной файловый поток к типу bool (определено для классов потоков в STL). Если всё нормально, внутри блока работаем с потоком INdir также, как со стандартным cin .

Для полноты ощущений, в код хорошо бы добавить обработку ситуаций, когда с открытием файла что-то пошло не так. Тем более, что ты используешь два файла: входной и выходной, и при ошибке открытия входного файла, скорее всего, выходной файл открывать/создавать не имеет смысла. Обработку ошибочных ситуаций можно сделать разными способами ( if-else , возбуждение и обработка исключений) и с различной логикой работы. Это уже зависит от того, как ты планируешь построить логику работы программы.

Ещё один момент. По умолчанию конструктор файлового потока открывает файл в текстовом режиме. Ты планируешь работать с бинарным файлом из Excel (или я ошибаюсь?). Следовательно нужно использовать второй параметр конструктора:

на данном этапе мне не понятно. Поэтому без комментариев.

Добрый день. По факту я смог наворотить вот такой код. Он мне полностью понятен и я знаю как и что в нём работает.

Честно говоря дальше я затупил из-за переизбытка разнообразной информации. Входной файл у меня .xlsx Нагуглил что в начале этот файл нужно распаковать используя библиотеку zlib. А потом работать с распакованными данными.

Если вам будет проще понять для чего всё это опишу что в итоге программа должна на вход получать таблицу .xlsx парсить её и записывать в файл.

Отличная программа. Придраться можно только к форматированию исходного кода и включению лишних заголовков.

А вот парсить Экселовские таблицы и записывать в файл тебе, наверное, лучше на VBA из под того же Excel. Мне кажется, что с С++ ты времени потратишь гораздо больше.

Обязательно xlsx? С CSV намного проще будет работать.

Top 10 Excel Libraries in 2017

Microsoft Excel is a program developed by Microsoft for Windows, Andriod, iOS, and macOS. It offers a different variety of features and allows users to manage, format, organize and calculate data in a spreadsheet system.

  • It has all the necessary features available in all spreadsheets.
  • A grid of cells is arranged in rows and columns to organize and manipulate data using arithmetic operations.
  • It can display data in graphs, charts, histograms, and with a very limited three-dimensional graphical display.

In the programming world, Microsoft Excel is widely used to import/export data in different forms such as tables, charts, graphs, etc. There are a lot of libraries available which can read, write, convert and print spreadsheet files and the user can quickly add any of these libraries as per their requirements.

In this article, we will discuss the top 10 Excel libraries, or you can say the most useful libraries which are used in 201 07

01 EPPlus By jankallman

EPPlus is a .NET library that creates advanced Excel spreadsheets without the need of interop. It reads and writes Excel files using the Office Open XML format (xlsx). EPPlus has no dependencies other than .NET.

Читать еще:  Excel textbox в ячейку

When working with EPPlus you need something to keep in mind:

  • Cell addresses, number formats and formulas are culture-insensitive, meaning things might look a little bit different when you write your code.
  • This is the way OOXML is stored and is then translated to your culture when the workbook is opened in Excel.

02 ExcelDataReader By shaoken

ExcelDataReader is a lightweight and fast library written in C# for reading Microsoft Excel files. The AsDataSet() extension method is a convenient helper for quickly getting the data, but is not always available or desirable to use. ExcelDataReader implements the System.Data.IDataReader and IDataRecord interfaces to navigate and retrieve data at a lower level.

An essential reader methods are as follows:

  • Read(): reads a row from the current sheet.
  • NextResult(): advances the cursor to the next sheet.
  • GetFieldType(): returns the type of a value in the current row. Always one of the types supported by Excel: double, int, bool, DateTime, string, or null if there is no value.
  • IsDBNull(): checks if a value in the current row is null.
  • GetValue(): returns a value from the current row as an object, or null if there is no value.
  • GetDouble(), GetInt32(), GetBoolean(), GetDateTime(), GetString(): return a value from the current row cast to their respective type.

03 ClosedXML By igitur & Pyropace

ClosedXML makes it easier for developers to create Excel 2007+ (.xlsx, .xlsm, etc) files. It provides a nice object oriented way to manipulate the files (similar to VBA) without dealing with the hassles of XML Documents. It can be used by any .NET language like C# and VisualBasic.NET.

  • The typical example is creating Excel reports on a web server.
  • To use ClosedXML, you must reference the DocumentFormat.OpenXml.dll
  • Just need to write a few lines of code as compared to OpenXML.

04 GemBox.Spreadsheet By GemBoxSoftware

GemBox.Spreadsheet is a .NET component that enables developers to read, write, convert and print spreadsheet files such as XLSX, XLS, ODS, CSV, HTML, PDF or XPS from their .NET applications using one simple API. GemBox.Spreadsheet requires only .NET Framework and is many times faster than Microsoft Excel automation.

  • Requires only .NET Framework and much faster than Microsoft Excel automation.
  • No dependency on Microsoft Excel.
  • Simple and easy-to-use programming interface.
  • High-quality rendering and printing.

05 Aspose.Cells By Aspose

  • Aspose.Cells for .NET is a spreadsheet programming component that allows software developers to manipulate and convert spreadsheet files from within their own applications.
  • A combination of APIs and GUI controls, Aspose.Cells for .NET speeds up Microsoft Excel programming and conversion.

06 LinqToExcel By paulyoder

  • LinqToExcel is a .Net library that allows you to query Excel spreadsheets using the LINQ syntax.
  • The default query expects the first row to be the header row containing column names that match the property names on the generic class being used. It also assumes the data to be in the worksheet named «Sheet1».
  • To query a worksheet with a different name, pass the worksheet name in as an argument.

07 Spire.XLS By spirecomponent

Spire.XLS for .NET is a professional .NET Excel component to enable developers to generate, write, edit and save Excel files with C# and Visual Basic. It allows developers to convert Excel to other popular formats, such as PDF, XML, HTML, CSV, Image format, etc.

Spire.XLS supports developers to export data from the database to Excel or import data from Excel to data table. With Spire.XLS for .NET, developers can create any types of ASP.NET web responses and WinForms applications to operate Excel files.

08 FreeSpire.XLS By spirecomponent

FreeSpire.XLS for .NET is a standalone Excel .NET library and does not depend on Microsoft Office Excel. It supports both for the old Excel 97-2003 format (.xls) and for the new Excel 2007 and Excel 2010 (.xlsx, .xlsm).

  • Powerful & High-Quality Excel File Conversion
  • Create Excel Report from Comprehensive Workbook Designer
  • Easily Manipulate cells & Excel Calculation Engine at run time
  • Provides a wide range of Charts such as Pie Chart, Bar Chart, Column Chart, Line Chart, Radar Chart and etc.
  • Supports data transportation between database and Excel in C# VB.NET or ASP.NET.

09 NPOI By tonyqus

NPOI is the .NET version of POI Java project at http://poi.apache.org/. It is an open source project which can help you read/write xls, doc, ppt files. It has a comprehensive applications and you can use it to;

  • Generate an Excel report without Microsoft Office suite installed on your server and more efficient than calling Microsoft Excel ActiveX at background;
  • Extract text from Office documents to help you implement full-text indexing feature (most of the time this feature is used to create search engines).
  • Extract images from Office documents
  • Generate Excel sheets that contain formulas

10 SpreadsheetGear By SpreadsheetGear

SpreadsheetGear for .NET Standard enables developers for .NET Core, iOS, Android, Linux, macOS and UWP to easily take advantage of scalable Excel Reporting, comprehensive Excel compatible charting APIs, the fastest and most complete Excel consistent calculations and more using the same API enjoyed by thousands of Windows developers for more than a decade.

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector