|
|
|
Сохранение в CSV
|
|||
|---|---|---|---|
|
#18+
Подскажите, в чем проблема: Написал макрос, который сохраняет файл в формат .CSV При запуске его через меню, ALT+F8, сохраняется нормально, разделитель данных ";" точка с запятой Повесил запуск макроса на кнопку на панели инструментов, так при запуске с кнопки разделитель "," запятая, что не подходит для дальнейшей обработки файла. В чем причина? Это лечится? Может, надо в явном виде атрибуты какие прописать? Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2008, 18:30 |
|
||
|
Сохранение в CSV
|
|||
|---|---|---|---|
|
#18+
Более вдумчивый поиск натолкнул на вот эту ссылку, похожий случай, но решения проблемы там нет и что дальше с этим делать не пойму http://forum.ru-board.com/topic.cgi?forum=33&topic=3961&start=20 авторКасательно разделителя: похоже в твоем случае просто игнорируется разделитель, установленный ключем Format (=Delimited(;)) раздела HKEY_LOCAL_MACHINE\software\Microsoft\jet\4.0\engines\text реестра. Да и не было, по-моему, конкретной определенности по поводу разделителя в csv-файлах. Вроде в версиях выше XP жестко остановились на ";". Описанное тобой явление может быть отголоском этих разногласий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2008, 19:34 |
|
||
|
Сохранение в CSV
|
|||
|---|---|---|---|
|
#18+
Вообще-то, точку с запятой использовать неверно. Стандарт это запятая. Гугли RFC 4180 и читай пункт 2.4 А Эксель (2003) знает несколько CSV форматов: xlCSV xlCSVMac xlCSVMSDOS xlCSVWindows поэксперементируй с ними, какой лучше тебе подойдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2008, 19:42 |
|
||
|
Сохранение в CSV
|
|||
|---|---|---|---|
|
#18+
CSV = Comma Separated Value(s) - значения, разделенные запятыми . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2008, 20:09 |
|
||
|
Сохранение в CSV
|
|||
|---|---|---|---|
|
#18+
White OwlВообще-то, точку с запятой использовать неверно. Стандарт это запятая. Гугли RFC 4180 и читай пункт 2.4 я знаю, но у меня база данных запятые не воспринимает почему-то, импортирует только если точка с запятой разделитель. так оно и получается точка с запятой, но вот если запуск макроса на кнопку привязать, то не получается почему-то, хотя макрос один и тот же White Owl А Эксель (2003) знает несколько CSV форматов: xlCSV xlCSVMac xlCSVMSDOS xlCSVWindows поэксперементируй с ними, какой лучше тебе подойдет. уже. не помогает. оно вроде только на кодировку влияет, если текст сохранять. Эксель правда 2000, но там тоже это есть. Я вот думаю, может, какой ключик специальный существует, чтобы в лоб прописать, какие разделители использовать, но в справке по VBA этого нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2008, 15:55 |
|
||
|
Сохранение в CSV
|
|||
|---|---|---|---|
|
#18+
Может я чего не понимаю. Почему автор одновременно говорит о формате CSV и о разделителе ";". Одно другое должно исключать. Наличие такого разделителя не есть формат CSV. То есть можно воспользоваться (как заклинанием) форматом xlCSVMSDOS, но разделение данных будет осуществляться по запятым, а не по точкам с запятой. Если надо импортировать в Excel, то дайте файлу расширение "txt" и запишите макро, указывающее разделитель ";": File/Open и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2008, 17:41 |
|
||
|
Сохранение в CSV
|
|||
|---|---|---|---|
|
#18+
И еще: что это у вас за база данных такая? Если это Excel, то так и надо сказать, а если это действительно база данных, а не Excel, то какая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2008, 17:47 |
|
||
|
Сохранение в CSV
|
|||
|---|---|---|---|
|
#18+
VladConnМожет я чего не понимаю. Почему автор одновременно говорит о формате CSV и о разделителе ";". Одно другое должно исключать. Наличие такого разделителя не есть формат CSV. То есть можно воспользоваться (как заклинанием) форматом xlCSVMSDOS, но разделение данных будет осуществляться по запятым, а не по точкам с запятой. Если надо импортировать в Excel, то дайте файлу расширение "txt" и запишите макро, указывающее разделитель ";": File/Open и т.д. И еще: что это у вас за база данных такая? Если это Excel, то так и надо сказать, а если это действительно база данных, а не Excel, то какая? Ну я не знаю как еще объяснить... может это фича такая в экселе, но если я через меню выбираю команду Файл- сохранить как - тип файла=.csv (разделители запятые) то сохраняется файл с разделителем ";" :) эксель 2000, в 97м то же самое. Может потому, что в региональных стандартах так задано, может, еще почему... То же самое действие, записанное в макрос, дает такой же результат. А вот тот же самый макрос, запускаемый кнопкой на панели инструментов дает результат "," В последующем данный файл импортируется в бд "Домино", где функция импорта на ";" заточена. а я хочу все-таки этот макрос с кнопки запустить, что бы и так и так работало. За неимением доступного формата xlCDSV (Comma Dot Separated Value) :) приходится как-то через xlCSV изворачиваться. Чтобы меня сильно не пинали... я не программист, а простой менеджер, пытаюсь оптимизировать свои рабочие процедуры. Спрашивал у нашего админа-программиста, почему так происходит - он глубокомысленно пожал плечами и сказал "не знаю". он по VBA вообще не сечет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2008, 18:23 |
|
||
|
Сохранение в CSV
|
|||
|---|---|---|---|
|
#18+
kabanchegЗа неимением доступного формата xlCDSV (Comma Dot Separated Value) :)Тогда уж xlSSV. Знак пунктуации "точка с запятой" по английски называется "semicolon". Хочешь универсальности - реализуй сохранение данных в файл самостоятельно. Либо прогоняй полученный файл через дополнительный конвертор который превратит "неправильный" разделитель полей в "правильный". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2008, 18:44 |
|
||
|
Сохранение в CSV
|
|||
|---|---|---|---|
|
#18+
Вообще-то все очень несложно. Рекомендую почитать здесь: http://msdn.microsoft.com/en-us/library/ms709353.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2008, 10:57 |
|
||
|
Сохранение в CSV
|
|||
|---|---|---|---|
|
#18+
AndrFВообще-то все очень несложно. Рекомендую почитать здесь: http://msdn.microsoft.com/en-us/library/ms709353.aspx Почитал. Не совсем понял, поясните плз: этот Schema.ini используется для непосредственного импорта в базу данных что ли? т.е. в исходном файле разделители могут быть любыми, а при импорте меняются как бы на лету? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2008, 19:06 |
|
||
|
Сохранение в CSV
|
|||
|---|---|---|---|
|
#18+
о_О а я неделю мучаюсь. Дошло. А все надо было проще гораздо.... Сцепить эти колонки просто в одну с разделителем, каким мне надо, и всего делов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2008, 19:16 |
|
||
|
Сохранение в CSV
|
|||
|---|---|---|---|
|
#18+
kabanchegПочитал. Не совсем понял, поясните плз: этот Schema.ini используется для непосредственного импорта в базу данных что ли? т.е. в исходном файле разделители могут быть любыми, а при импорте меняются как бы на лету? Schema.ini задает параметры экспорта/импорта. В том числе может задавать и разделитель, кодовую страницу файла, имена полей... Ниже примерчик, который я когда-то набрасывал: Код: plaintext 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. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2008, 10:38 |
|
||
|
|

start [/forum/topic.php?fid=60&tid=2161853]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
87ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 426ms |

| 0 / 0 |
