|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
Здравствуйте! Вот установили новый офисссс.... Тьфу! Ранее при помощи программулины (написана на delphi) открывал excel файл и обрабатывал данные. Теперь же, при открытии файлов формата нового EXCEL (*.xlsx) выскакивает предупреждение " Конфликт имен: Имя не должно совпадать со встроенным именем ". И предлагается ввести новое имя, старое - _filterDatabase Как с этим боротся? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2008, 17:27 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
У меня такая же проблема. Скажите, Вы так и не нашли решение данной проблемы? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.04.2008, 17:57 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
PaparociiКак с этим боротся? Сохранять в XLS. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2008, 20:27 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
alex_gearboxPaparociiКак с этим боротся? Сохранять в XLS. действительно, при сохранении файла как формата 2003 работает. А что делать, если пользователя нужен именно формат ecxel 2007? Кто-нибудь сталкивался? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2010, 11:41 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
Когда предлагается ввести новое имя, нужно ввести количество символов совпадающим с порядковым номером открытия файла, первый раз открыли книгу - 1 символ, 2 раз - 2 символа и т.д. Ну а решение проблемы - одно, не использовать зарезервированные имена (в пределах книги) для листов, диапазонов ячеек ит.д. Чтобы разобраться со своими именами и удобно их переименовать можно воспользоваться удобной настройкой NameManager http://www.oaltd.co.uk/mvp Если все правильно переименуете, должно все нормально окрываться в 2007 и последующих версиях. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2010, 18:08 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
Спасибо Вам за совет, эта надстройка просто чудо! Неделю искали пути решения проблемы самостоятельно, в итоге решили только с помощью этой надстройки. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.01.2011, 14:13 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
_Кэт_, Могли бы вы подробнее рассказать, что и как вы делали с этой надстройкой- ничего сама не поняла.... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2011, 19:45 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
Столкнулся с такой же проблемой, помогли Сведения о синтаксических правилах для имен с http://office.microsoft.com/ru-ru/excel-help/HA010147120.aspx. Обнаружил имя поля "R" в одной из таблиц, которая импортировалась в Access. Заменил на "Rh", проблема решилась. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2011, 23:20 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
Получил БОЛЬШОЙ файл из внешних источников. Ругается на конфликт имен (print_area). А как же найти это имя, чтобы его изменить? Там 60 тыс строк на 30 колонок. ЗЫ: Хочется прямо ругаться на этих мелкософтовцев. Я ведь ни при чём! Имею что получил. ЗЫ1: Можно, конечно, записать как excel-2003. Но осадочек-то остается. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2012, 11:43 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
Я решил проблему так: При закрытии приложения (FormClose, последняя операция) добавил следующий код: try MsExcel.ActiveSheet.Names.Item('_FilterDatabase').Delete; except end; MsExcel.ActiveWorkbook.Close; MsExcel.Application.Quit; То есть, имя _FilterDatabase удаляется. И работа с фильтрами стала корректной. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2013, 10:27 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
Уточнение, пропустил одну строку... При закрытии приложения (FormClose, последняя операция) добавил следующий код: MsExcel.ActiveSheet.AutoFilterMode:= False; MsExcel.ActiveWorkbook.Names.Item('_FilterDatabase').Delete; MsExcel.ActiveSheet.Names.Item('_FilterDatabase').Delete; MsExcel.ActiveWorkbook.Close; MsExcel.Application.Quit; То есть мы программно снимаем автофильтр, и удаляем _FilterDatabase. У меня работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2013, 16:02 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
Ещё уточнение. В общем понял, что нельзя вообще пытаться сохранять файл с включенным автофильтром. Мое приложение использует лист экселя как базу данных, обращается к нему, записывает и сохраняет каждое изменение. Пришлось программно каждый раз снимать автофильтр перед сохранением и восстанавливать его после успешного сохранения файла. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2013, 20:06 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
Конечное решение //При открытии книги MsExcel.ActiveSheet.Range['A3:U3'].Select; MsExcel.Selection.AutoFilter; //При закрытии MsExcel.ActiveSheet.AutoFilterMode:= False; MsExcel.ActiveWorkbook.Names.Item('_FilterDatabase').Delete; MsExcel.ActiveWorkbook.Save; MsExcel.ActiveWorkbook.Close; MsExcel.Application.Quit; А при промежуточном сохранении с открытой книгой можно сохранять с активным автофильтром. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2013, 21:38 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
Недавно столкнулся с такой же проблемой и решил поделится решением. В моем случае проблема осложнялась тем, что я загружаю данные из Excel файлов в автоматическом режиме, без участия пользователей. Поскольку Excel я открывал в невидимом режиме, то и возникающего диалогового окна с предложением ввести новое имя вместо _FilterDatabase не было видно. Внешне это выглядело как будто процесс обрабатывающий Excel файлы зависал. На самом деле он ждал ввода в диалоговое окно пользователем. Что интересно, при создании OLE объекта я устанавливаю DisplayAlerts в False. Итак, решение проблемы. Данные в XLSX файле хранятся в ввиде набора XML и других файлов упакованных в zip архив. Чтобы убедится в этом, можете сменить расширение XLSX на .zip и открыть любым архиватором. Берем файл, который вызывает ошибку (_FilterDatabase), открываем его архиватором. Нас интересует XML файл XL\workbook.xml. Если посмотреть содержимое этого файла, то можно обнаружить, что в нем есть два атрибута с именем _FilterDatabase, в моем случае: Код: xml 1. 2.
Вот как раз второй атрибут и вызывает ошибку. Если изменить его название или удалить весь тег, то ошибка пропадает. Итак, алгоритм следующий: Открываем XLSX файл, вытаскиваем из него файл XL\workbook.xml, затем меняем название атрибута "_xlnm._FilterDatabase" на любое другое, запаковываем обратно, открываем Excel файл стандартными средствами. Фрагмент кода реализующий это ниже. Для разархивации использовал бесплатный компонент TZipMaster 1.91. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54.
Позже я обнаружил что существуют файлы фомата Excel 2003 (.XLS) которые вызывают такую же ошибку при открытии как в Excel 2003, так и в более поздних версиях Excel (у меня Excel 2010). Я не поверил, но проблема решилась переключением интерфейса Excel на русский язык. Сам язык в системе, как и MUI Excel 2010 с русским языком были установлены, но переключить язык интерфейса на русский я забыл. Вот такие танцы с бубном. Надеюсь кому-то пригодится. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2013, 10:30 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
В модуль книги: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2013, 12:17 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
kuklp, Ваше решение мне не подходит, т.к. я не смогу заставить всех клиентов, которые присылают мне Excel файлы прописать у себя этот макрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2013, 13:01 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
vasyurko, в теме ведь не только у Вас с этим проблема и кто знает, сколько еще пользователей заглянут в тему с надеждой решить ее :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2013, 15:21 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
vasyurko, спасибо за ценную наводку!!! Целый день думал, что можно сделать. Обидно только, что файлы *.xlsb не обработать подобным методом (файл xml хранится в бинарном виде). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2014, 08:41 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
у меня при открытии файла Excel 2007 ручками никакого вопроса не возникает, однако при открытии через Delphi возникает эта фигота XLApp:=CreateOleObject('Excel.Application'); XLApp.WorkBooks.Open(OpenDialog1.FileName); // вот после этого возникает ошибка "имя не может совпадать со встроенным именем" что прописать в Delphi, чтобы эта фигота игнорилась? все примеры, которые здесь привели, касаются закрытия Excel файла, что мне подходит, макрос я тоже не пропишу в каждый файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2014, 14:01 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
*все примеры, которые здесь привели, касаются закрытия Excel файла, что мне НЕ подходит, макрос я тоже не пропишу в каждый файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2014, 14:01 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
авторPrivate Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) On Error Resume Next Me.Names("_FilterDatabase").Delete End Sub Private Sub Workbook_Open() On Error Resume Next Me.Names("_FilterDatabase").Delete End Sub как это прописать на Delphi, например? что такое Me? я написал так: авторprocedure TForm1.Button1Click(Sender: TObject); var XLApp,xlbook1: variant; begin XLApp:=CreateOleObject('Excel.Application'); XLApp.WorkBooks.Open('D:\Workbook1.xlsx'); xlbook1:=xlapp.Workbooks[ ExtractFileName('D:\Workbook1.xlsx') ]; XLApp.Names('_xlnm._FilterDatabase').Delete end; но выдает ошибку -"Член группы не найден" ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2015, 10:29 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
Me - это текущая форма или текущий лист XLApp в вашем случае - это Application ЗЫ: Учимся использовать тэги оформления кода - FAQ ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2015, 11:08 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
Tray, Решил проблему созданием потока который тупо закрывает эти долбанные окошки. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
ЗЫЖ Если ещё кому актуально. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 14:44 |
|
Excel 2007 - Конфликт имен
|
|||
---|---|---|---|
#18+
Актуально. Новый эксель открывает xlsx файлы спокойно, а через делфи (ole) этот же файл открывается черед диалоговые диалоговые окна для решения проблем (в частности, конфликт с именем Print_Area). Не хочется писать костыли в виде предварительного xml-парсинга с автозаменой или мониторинга окошек. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2017, 12:32 |
|
|
start [/forum/topic.php?fid=61&msg=38090376&tid=2172716]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
136ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 306ms |
total: | 537ms |
0 / 0 |