Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/проблемма excel 2007 - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
проблемма excel 2007
Mihail728 Дата: Четверг, 25.08.2011, 19:55 | Сообщение № 1
Группа: Гости
Файлы Р_624 ранее был создан в excel 2003 и с помощью вызова программы
xls2htm переделывалась в нужный нам вид.
После перехода на excel 2007 программы xls2htm с файлами созданными
excel 2007 (Р_622(новый)) пишет , что неправильный формат.
Помогите как это устранить. Исходников xls2htm нет.

Тут лежат все файлы:
http://files.mail.ru/SFPVRU
 
Ответить
СообщениеФайлы Р_624 ранее был создан в excel 2003 и с помощью вызова программы
xls2htm переделывалась в нужный нам вид.
После перехода на excel 2007 программы xls2htm с файлами созданными
excel 2007 (Р_622(новый)) пишет , что неправильный формат.
Помогите как это устранить. Исходников xls2htm нет.

Тут лежат все файлы:
http://files.mail.ru/SFPVRU

Автор - Mihail728
Дата добавления - 25.08.2011 в 19:55
Hugo Дата: Четверг, 25.08.2011, 23:54 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Проверил - так и есть.
Мне кажется, нужно программу писать заново.
Или просто сохранять стандартным способом в html, и где-то были коды/надстройки для сохранения в dbf.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеПроверил - так и есть.
Мне кажется, нужно программу писать заново.
Или просто сохранять стандартным способом в html, и где-то были коды/надстройки для сохранения в dbf.

Автор - Hugo
Дата добавления - 25.08.2011 в 23:54
Гость Дата: Пятница, 26.08.2011, 12:20 | Сообщение № 3
Группа: Гости
Hugo, Что интересно. Если лист созданный в Excel 2007 например Р_622(новый) копируем в чистый лист созданыый в excel 2003 , то с ним все ок. По поводу сохранения стандартным способом в html - нам не подходит, т.к. другая (наша) программа она тут http://files.mail.ru/R1MPW7 тогда не считывает нужные нам данные.
Нужно что-бы получался файл именно такой, какой его делал xls2htm.
А поповоду (где-то были коды/надстройки для сохранения в dbf) я не понял
 
Ответить
СообщениеHugo, Что интересно. Если лист созданный в Excel 2007 например Р_622(новый) копируем в чистый лист созданыый в excel 2003 , то с ним все ок. По поводу сохранения стандартным способом в html - нам не подходит, т.к. другая (наша) программа она тут http://files.mail.ru/R1MPW7 тогда не считывает нужные нам данные.
Нужно что-бы получался файл именно такой, какой его делал xls2htm.
А поповоду (где-то были коды/надстройки для сохранения в dbf) я не понял

Автор - Гость
Дата добавления - 26.08.2011 в 12:20
RAN Дата: Пятница, 26.08.2011, 12:54 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Лист, созданный 2007, имеет формат XLSX, и пока вы его не сохраните как XLS, он так и будет XLSX.
И xls2htm совершенно правильно пишет, что XLSX<>XLS.
Причем, если сохраняя его макросом вы не укажете формат файла, а только смените расширение на XLS, файл так и будет XLSX.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЛист, созданный 2007, имеет формат XLSX, и пока вы его не сохраните как XLS, он так и будет XLSX.
И xls2htm совершенно правильно пишет, что XLSX<>XLS.
Причем, если сохраняя его макросом вы не укажете формат файла, а только смените расширение на XLS, файл так и будет XLSX.

Автор - RAN
Дата добавления - 26.08.2011 в 12:54
Hugo Дата: Пятница, 26.08.2011, 14:25 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
RAN, я сейчас проверить не могу, но вроде там были оба файла xls, но по внутренностям действительно шапки отличались структурой.

Про dbf - там ведь ещё и этот файл генерится.
Если Вам нужен только html - то это не сложно простым скриптом/макросом сгенерить. Посмотрите коды по выгрузке данных в текст.

Да и вообще - может быть переделать, чтоб вторая программа брала данные из csv? Туда сохранить можно разными способами - стандартным или макросом. Зачем такое сложное промежуточное звено? Я думал, вы на сайт грузите...


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеRAN, я сейчас проверить не могу, но вроде там были оба файла xls, но по внутренностям действительно шапки отличались структурой.

Про dbf - там ведь ещё и этот файл генерится.
Если Вам нужен только html - то это не сложно простым скриптом/макросом сгенерить. Посмотрите коды по выгрузке данных в текст.

Да и вообще - может быть переделать, чтоб вторая программа брала данные из csv? Туда сохранить можно разными способами - стандартным или макросом. Зачем такое сложное промежуточное звено? Я думал, вы на сайт грузите...

Автор - Hugo
Дата добавления - 26.08.2011 в 14:25
RAN Дата: Пятница, 26.08.2011, 15:38 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Hugo, я файлы не смотрел но исходя из
Quote (Гость)
Если лист созданный в Excel 2007 например Р_622(новый) копируем в чистый лист созданыый в excel 2003 , то с ним все ок.

Создаем xlsx с данными
Создаем чистый xls
Копируем данные из xlsx в xls
Получаем xls с данными
С ним и работаем
Quote (Гость)
с ним все ок


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Пятница, 26.08.2011, 15:39
 
Ответить
СообщениеHugo, я файлы не смотрел но исходя из
Quote (Гость)
Если лист созданный в Excel 2007 например Р_622(новый) копируем в чистый лист созданыый в excel 2003 , то с ним все ок.

Создаем xlsx с данными
Создаем чистый xls
Копируем данные из xlsx в xls
Получаем xls с данными
С ним и работаем
Quote (Гость)
с ним все ок

Автор - RAN
Дата добавления - 26.08.2011 в 15:38
Hugo Дата: Пятница, 26.08.2011, 17:40 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Как я понял: 2003.xls и 2007.xls хоть и небольшие, но две разницы. Посмотри в листере командира шапки.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеКак я понял: 2003.xls и 2007.xls хоть и небольшие, но две разницы. Посмотри в листере командира шапки.

Автор - Hugo
Дата добавления - 26.08.2011 в 17:40
mihail123 Дата: Пятница, 26.08.2011, 22:03 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Объясню проблемму поподробнее. У нас существует программа PROD (состоит из 2-х файлов)http://files.mail.ru/R1MPW7 , она считывает нужную нам информацию из файлов HTM или HTML (накладные->считать ), которые генерирует наша основная программа учета. Небольшой объем учета по определенным причинам находится не в нашей основной программе учета , а в таблицах Excel. Ранее стоял Excell 2003 и тогда мы приводили нужную нам табицу в такой вид как Р_624.xls http://files.mail.ru/R1MPW7 (что-бы были 2 колонки наименование и количество) и с помощью xls2htm http://files.mail.ru/R1MPW7 (она состоит из 5-ти файлов xls2htm, msvcr71.dll, vfp9enu.dll, vfp9r.dll, vfp9rrus.dll) конвертировали ее в Р_624.htm (с четырьмя колонками) и образовывались еще 2 не нужных файла с расширением FPT и DBF. И далее программой PROD считывали нужную нам информацию.
После установки Excel 2007 файлы созданыые, такие как Р_622(новый) не поддаются конвертированию с помощью xls2htm - пишет недопустимый формат файла Microsoft Excel. Если лист созданный в Excel 2007 например Р_622(новый) копируем в чистый лист созданыый в excel 2003 , то с ним все ок. Однако все это очень громоздко и неудобно.
Кстати если в Excel 2007 файлы сохранять как в формате Excel 2003 , то все равно полученный файл не поддается конвертации с помощью xls2htm.
Quote (Hugo)
Или просто сохранять стандартным способом в html

Это не подходит, т.к. PROD не считывает такой файл.
Quote (RAN)
Лист, созданный 2007, имеет формат XLSX, и пока вы его не сохраните как XLS, он так и будет XLSX.
И xls2htm совершенно правильно пишет, что XLSX<>XLS.
Причем, если сохраняя его макросом вы не укажете формат файла, а только смените расширение на XLS, файл так и будет XLSX.

А каким макросом его сохранять ? Или как вообще решить эту проблемму ?
Quote (Hugo)
Если Вам нужен только html - то это не сложно простым скриптом/макросом сгенерить. Посмотрите коды по выгрузке данных в текст.
Да и вообще - может быть переделать, чтоб вторая программа брала данные из csv? Туда сохранить можно разными способами - стандартным или макросом.

Нужен только HTML , а как и каким скриптом его сгенерить, что-бы PROD считывал ?
Или может вообще что-то в самом Prodе подправить, что-бы считывал и HTLM и XLS и XLSX ? (его исходники у нас есть).
Помогите плз. Буду очень признателен.
 
Ответить
СообщениеОбъясню проблемму поподробнее. У нас существует программа PROD (состоит из 2-х файлов)http://files.mail.ru/R1MPW7 , она считывает нужную нам информацию из файлов HTM или HTML (накладные->считать ), которые генерирует наша основная программа учета. Небольшой объем учета по определенным причинам находится не в нашей основной программе учета , а в таблицах Excel. Ранее стоял Excell 2003 и тогда мы приводили нужную нам табицу в такой вид как Р_624.xls http://files.mail.ru/R1MPW7 (что-бы были 2 колонки наименование и количество) и с помощью xls2htm http://files.mail.ru/R1MPW7 (она состоит из 5-ти файлов xls2htm, msvcr71.dll, vfp9enu.dll, vfp9r.dll, vfp9rrus.dll) конвертировали ее в Р_624.htm (с четырьмя колонками) и образовывались еще 2 не нужных файла с расширением FPT и DBF. И далее программой PROD считывали нужную нам информацию.
После установки Excel 2007 файлы созданыые, такие как Р_622(новый) не поддаются конвертированию с помощью xls2htm - пишет недопустимый формат файла Microsoft Excel. Если лист созданный в Excel 2007 например Р_622(новый) копируем в чистый лист созданыый в excel 2003 , то с ним все ок. Однако все это очень громоздко и неудобно.
Кстати если в Excel 2007 файлы сохранять как в формате Excel 2003 , то все равно полученный файл не поддается конвертации с помощью xls2htm.
Quote (Hugo)
Или просто сохранять стандартным способом в html

Это не подходит, т.к. PROD не считывает такой файл.
Quote (RAN)
Лист, созданный 2007, имеет формат XLSX, и пока вы его не сохраните как XLS, он так и будет XLSX.
И xls2htm совершенно правильно пишет, что XLSX<>XLS.
Причем, если сохраняя его макросом вы не укажете формат файла, а только смените расширение на XLS, файл так и будет XLSX.

А каким макросом его сохранять ? Или как вообще решить эту проблемму ?
Quote (Hugo)
Если Вам нужен только html - то это не сложно простым скриптом/макросом сгенерить. Посмотрите коды по выгрузке данных в текст.
Да и вообще - может быть переделать, чтоб вторая программа брала данные из csv? Туда сохранить можно разными способами - стандартным или макросом.

Нужен только HTML , а как и каким скриптом его сгенерить, что-бы PROD считывал ?
Или может вообще что-то в самом Prodе подправить, что-бы считывал и HTLM и XLS и XLSX ? (его исходники у нас есть).
Помогите плз. Буду очень признателен.

Автор - mihail123
Дата добавления - 26.08.2011 в 22:03
Hugo Дата: Пятница, 26.08.2011, 23:17 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Quote (mihail123)
каким скриптом его сгенерить
- наймите программиста, который может макросом или лучше скриптом vbs перекинуть данные из Экселя в текст.
Начало у текста будет такое:
Code

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<META content="MSHTML 6.00.2900.3314" name=GENERATOR></HEAD>
<BODY><FONT size=+1>Счет N <B>1111</B> от <B>01.01.08</B></FONT>
<TABLE borderColor=#a0a0a0 cellSpacing=0 borderColorDark=#ffffff borderColorLight=#a0a0a0 border=1>
<TR align=middle bgColor=#c0c0c0>
<TD>N</TD>
<TD>Наименование товара</TD>
<TD>Ед. изм.</TD>
<TD>Кол-во</TD>
</TR>
<TR bgColor=#f0f0f0>

Только мне не понятно, откуда взялось "1111 от 01.01.08" - похоже, что "от фонаря".
Ну а дальше Ваши данные, перемежающиеся тэгами и счетчиком строк.
Ничего сверхсложного.
Может быть и здесь кто-нибудь сделает. Я могу, но некогда, т.к посидеть за этой рутиной часик вероятно нужно.

Если Вы разбираетесь в самом Prodе, то лучше конечно чтобы сразу из xls/xlsx данные брал - меньше хлопот.

P.S. Хотя... Не пожалел часа - написал скрипт. Сохраняет htm в папку с скриптом (можно поменять на другой путь).
Для работы нужен установленный Эксель.
Можно обрабатывать xls обоих типов, и xlsx/xlsm/xlsb, только у них в названии выходного файла будет лишняя точка.
Впрочем, это можно исправить, если важно, но не хотелось код усложнять доп. проверками/ветвлениями.
Если обрабатывать будете только xlsx/m/b, то заменить в коде в строке
Code
fname = Left(wb.Name, Len(wb.Name) - 4)
4 на 5.
Код можно править в блокноте. Я в нём и писал (Notepad++)
Есть небольшая разница от прежней версии. В оригинале количество писалось в поле шириной 14 символов, у меня просто пишется номер, какой есть.
Если это будет влиять - исправим.

PP.S. Если нужно из результата выкинуть строки
Code
622 09.08.2011          
наименование    Продано

то это легко сделать - пустите цикл с 3, а где пишете номер в файл - отнимите 2 smile
Или добавьте проверку на непусто и IsNumeric() для a(i, 2) - тогда эти строки сами не пройдут, останутся только значимые строки.
Ещё добавлю - если нужно менять номер счёта и дату, то это тоже несложно добавить в скрипт - вводить оба значения через inputbox, или брать из значения таблицы - например из "624 23.08.2011"
P.S. Добавил эту опцию - значения берутся из таблицы.
Но если в А1 не будет текста с пробелом - то будет ошибка!
К сообщению приложен файл: xls2htm.v02.vbs (3.3 Kb)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
Сообщение
Quote (mihail123)
каким скриптом его сгенерить
- наймите программиста, который может макросом или лучше скриптом vbs перекинуть данные из Экселя в текст.
Начало у текста будет такое:
Code

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<META content="MSHTML 6.00.2900.3314" name=GENERATOR></HEAD>
<BODY><FONT size=+1>Счет N <B>1111</B> от <B>01.01.08</B></FONT>
<TABLE borderColor=#a0a0a0 cellSpacing=0 borderColorDark=#ffffff borderColorLight=#a0a0a0 border=1>
<TR align=middle bgColor=#c0c0c0>
<TD>N</TD>
<TD>Наименование товара</TD>
<TD>Ед. изм.</TD>
<TD>Кол-во</TD>
</TR>
<TR bgColor=#f0f0f0>

Только мне не понятно, откуда взялось "1111 от 01.01.08" - похоже, что "от фонаря".
Ну а дальше Ваши данные, перемежающиеся тэгами и счетчиком строк.
Ничего сверхсложного.
Может быть и здесь кто-нибудь сделает. Я могу, но некогда, т.к посидеть за этой рутиной часик вероятно нужно.

Если Вы разбираетесь в самом Prodе, то лучше конечно чтобы сразу из xls/xlsx данные брал - меньше хлопот.

P.S. Хотя... Не пожалел часа - написал скрипт. Сохраняет htm в папку с скриптом (можно поменять на другой путь).
Для работы нужен установленный Эксель.
Можно обрабатывать xls обоих типов, и xlsx/xlsm/xlsb, только у них в названии выходного файла будет лишняя точка.
Впрочем, это можно исправить, если важно, но не хотелось код усложнять доп. проверками/ветвлениями.
Если обрабатывать будете только xlsx/m/b, то заменить в коде в строке
Code
fname = Left(wb.Name, Len(wb.Name) - 4)
4 на 5.
Код можно править в блокноте. Я в нём и писал (Notepad++)
Есть небольшая разница от прежней версии. В оригинале количество писалось в поле шириной 14 символов, у меня просто пишется номер, какой есть.
Если это будет влиять - исправим.

PP.S. Если нужно из результата выкинуть строки
Code
622 09.08.2011          
наименование    Продано

то это легко сделать - пустите цикл с 3, а где пишете номер в файл - отнимите 2 smile
Или добавьте проверку на непусто и IsNumeric() для a(i, 2) - тогда эти строки сами не пройдут, останутся только значимые строки.
Ещё добавлю - если нужно менять номер счёта и дату, то это тоже несложно добавить в скрипт - вводить оба значения через inputbox, или брать из значения таблицы - например из "624 23.08.2011"
P.S. Добавил эту опцию - значения берутся из таблицы.
Но если в А1 не будет текста с пробелом - то будет ошибка!

Автор - Hugo
Дата добавления - 26.08.2011 в 23:17
mihail123 Дата: Воскресенье, 28.08.2011, 23:02 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Огромное спасибо. Hugo вы лучший.
 
Ответить
СообщениеОгромное спасибо. Hugo вы лучший.

Автор - mihail123
Дата добавления - 28.08.2011 в 23:02
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!