Давайте попробуем это с минимальным примером (добавленным через консоль в Kibana, но вы сможете легко изменить его на простые команды curl):
PUT test
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
},
"mappings": {
"_doc": {
"dynamic": "strict",
"properties": {
"family name": {
"type": "text",
"index": "true"
},
"Firstname": {
"type": "text",
"index": "true"
},
"Date of birth": {
"type": "text",
"index": "false"
}
}
}
}
}
PUT /test/_doc/1
{
"family name": "foo",
"Firstname": "bar",
"Date of birth": "baz"
}
Это работает для меня. Я могу найти foo
и bar
, но не baz
:
Также после обновления шаблона индекса дата поле рождения не может быть ни найдено, ни найдено:
Некоторые быстрые наблюдения:
true
или false
. Это в другой области, поэтому, вероятно, не связано с вашей проблемой. В итоге я использовал Aspose.Cells, как я упоминал в своем исходном посте, поскольку это казалось самым простым путем. Я очень доволен тем, как все получилось, и их поддержка очень хорошая. Мне пришлось создать вокруг него оболочку на C #, которая экспортировала COM-интерфейс в мое приложение C ++.
Самое безопасное предложение состоит в том, чтобы просто использовать OLE. Это использует COM, который не требует.NET вообще.
http://en.wikipedia.org/wiki/OLE_Automation <-примерно на полпути вниз является примером C++.
Вам, вероятно, придется перенести несколько технических возможностей в функции для удобства использования, но это действительно не ужасно для работы с.
Править: Просто знайте, что Вам нужна копия Excel для него для работы. Кроме того, существует некоторая первая сторона.h файлы, которые можно найти характерным для Excel. (это все объяснено в статье Wikipedia),
SpreadsheetGear для.NET обработает Ваши требования и имеет API, который очень похож на Excel.
При вставке ячеек определенные имена (и любые другие формулы / диаграммы / и т.д....) будут автоматически зафиксированы до ссылки новый диапазон (как они были бы в Excel). Таким образом, Вы не должны были бы обновлять свои определенные имена (хотя существует полная поддержка создания и обновления определенных имен если, именно это Вы хотите сделать).
SpreadsheetGear является компонентом.NET, но можно создать собственную обертку, которая является вызываемой от C++.
Вы видите то, что наши клиенты говорят и загружают свободный, полностью функциональный evalution здесь.
Вы уже попытались использовать COM-интерфейсы Excel? Obviously Excel должен быть установкой на машине, и это - боль для контакта с...
Я не знаю, является ли это опцией для Вас, но новые офисные 2007 форматы находятся в заархивированном формате XML, который делает ее очень выполнимой, чтобы сделать Ваши собственные модификации. Посмотрите здесь для спецификаций.
Я утверждал бы, что решением .NET со взаимодействующим с COM для соединения в Ваше приложение C++ является лучшее решение. Больше чем за десять лет работы с ними я никогда не видел автоматизацию COM Excel, который не пропустил память где-нибудь.
Если необходимо автоматизировать Excel, я рекомендую Инструменты Visual Studio для Office. Если Вы не должны автоматизировать, только изменить файлы, и те файлы могут быть при исполнении служебных обязанностей формат 2007 года, Вы - более обеспеченное нахождение библиотеки, которая управляет файлами непосредственно вместо того, чтобы открытие Excel, чтобы сделать это.