27.07.2011, 12:53 | #21 |
MCITP
|
Цитата:
Сообщение от Gustav
Запишите макрос в Excel, т.е. в пустом Экселе включите запись макро, далее откройте свой файл, сохраните его как xls, закройте файл, выключите запись макро. Получившийся код VBA несите сюда - я помогу его оформить на X++.
Импорт при помощи ADO работает с СОХРАНЕННЫМ файлом на диске! (этот файл как бы БД для него). К тому же, для несохраненного файла вы не сможете указать параметры строки подключения. Поэтому сохранение обязательно при использовании класса gl00mie. Но сомневаюсь, что макрос должен показать как он преобразует файл в удобочитаемый вид для Excel. Собственно вот и макрос. Просто открытие: Sub Test() ' ' Test Макрос ' ' ChDir "C:\" Workbooks.Open Filename:="C:\reportSmall.xls" End Sub Открытие с сохранением: Sub TestFull() ' ' TestFull Ìàêðîñ ' ' ChDir "C:\" Workbooks.Open Filename:="C:\reportSmall.xls" ActiveWorkbook.SaveAs Filename:="C:\reportSmall.xlsx", FileFormat:= _ xlOpenXMLWorkbook, CreateBackup:=False End Sub Последний раз редактировалось GBH; 27.07.2011 в 12:58. |
|
27.07.2011, 13:53 | #22 |
Moderator
|
Как-то так. Предполагается, что в Excel 2007+ мы сохраняем файл в формате Excel 2003. Открывать дальше Jet'ом 4 (не ACE).
X++: { COM xlApplication; COM xlWorkbooks, xlWorkbook; ; xlApplication = new COM('Excel.Application'); xlWorkbooks = xlApplication.Workbooks(); xlWorkbook = xlWorkbooks.Open(@'C:\reportSmall.xls'); xlWorkbook.SaveAs(@'C:\reportSmall_TEMP.xls', 56); // 56 = xlExcel8 xlWorkbook.Close(false); } |
|
|
За это сообщение автора поблагодарили: GBH (1). |
27.07.2011, 14:01 | #23 |
MCITP
|
Цитата:
Сообщение от Gustav
Как-то так. Предполагается, что в Excel 2007+ мы сохраняем файл в формате Excel 2003. Открывать дальше Jet'ом 4 (не ACE).
X++: { COM xlApplication; COM xlWorkbooks, xlWorkbook; ; xlApplication = new COM('Excel.Application'); xlWorkbooks = xlApplication.Workbooks(); xlWorkbook = xlWorkbooks.Open(@'C:\reportSmall.xls'); xlWorkbook.SaveAs(@'C:\reportSmall_TEMP.xls', 56); // 56 = xlExcel8 xlWorkbook.Close(false); } Насчёт Jet не опечатка? |
|
27.07.2011, 14:36 | #24 |
Moderator
|
|
|