Foxpro import from excel

Source: Microsoft Support

RAPID PUBLISHING

RAPID PUBLISHING ARTICLES PROVIDE INFORMATION DIRECTLY FROM WITHIN THE MICROSOFT SUPPORT ORGANIZATION. THE INFORMATION CONTAINED HEREIN IS CREATED IN RESPONSE TO EMERGING OR UNIQUE TOPICS, OR IS INTENDED SUPPLEMENT OTHER KNOWLEDGE BASE INFORMATION.

Action

You have a Microsoft Excel 2007 workbook (.XLSX). You want to import data from it into a Microsoft Visual FoxPro (VFP) table using VFP.

Resolution

There are a number of ways of accomplishing this task:

1. Export the Excel sheet(s) as comma delimited files (.CSV) and use the IMPORT command or the Import Wizard inside VFP to import the file(s).

2. Write custom VFP OLE automation code to automate Excel and extract the data to VFP.

3. Use the Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb) ODBC driver included with the 2007 Office System Driver: Data Connectivity Components package to access and extract data from the Excel workbook, either through a VFP Remote View or programmatically, as in the following sample code:

*————————————
* AUTHOR: Trevor Hancock
* CREATED: 02/15/08 04:55:31 PM
* ABSTRACT: Code demonstrates how to connect to
* and extract data from an Excel 2007 Workbook
* using the «Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)»
* from the 2007 Office System Driver: Data Connectivity Components
*————————————
LOCAL lcXLBook AS STRING, lnSQLHand AS INTEGER, ;
    lcSQLCmd AS STRING, lnSuccess AS INTEGER, ;
    lcConnstr AS STRING
CLEAR

lcXLBook = [C:SampleWorkbook.xlsx]

lcConnstr = [Driver=] + ;
    [{Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};] + ;
    [DBQ=] + lcXLBook

IF !FILE( lcXLBook )
    ? [Excel file not found]
    RETURN .F.
ENDIF
*— Attempt a connection to the .XLSX WorkBook.
*— NOTE: If the specified workbook is not found,
*— it will be created by this driver! You cannot rely on a
*— connection failure — it will never fail. Ergo, success
*— is not checked here. Used FILE() instead.
lnSQLHand = SQLSTRINGCONNECT( lcConnstr )

*— Connect successful if we are here. Extract data…
lcSQLCmd = [Select * FROM «Sheet1$»]
lnSuccess = SQLEXEC( lnSQLHand, lcSQLCmd, [xlResults] )
? [SQL Cmd Success:], IIF( lnSuccess > 0, ‘Good!’, ‘Failed’ )
IF lnSuccess < 0
    LOCAL ARRAY laErr[1]
    AERROR( laErr )
    ? laErr(3)
    SQLDISCONNECT( lnSQLHand )
    RETURN .F.
ENDIF

*— Show the results
SELECT xlResults
BROWSE NOWAIT
SQLDISCONNECT( lnSQLHand )

DISCLAIMER

MICROSOFT AND/OR ITS SUPPLIERS MAKE NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY, RELIABILITY OR ACCURACY OF THE INFORMATION CONTAINED IN THE DOCUMENTS AND RELATED GRAPHICS PUBLISHED ON THIS WEBSITE (THE “MATERIALS”) FOR ANY PURPOSE. THE MATERIALS MAY INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS AND MAY BE REVISED AT ANY TIME WITHOUT NOTICE.

TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND/OR ITS SUPPLIERS DISCLAIM AND EXCLUDE ALL REPRESENTATIONS, WARRANTIES, AND CONDITIONS WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO REPRESENTATIONS, WARRANTIES, OR CONDITIONS OF TITLE, NON INFRINGEMENT, SATISFACTORY CONDITION OR QUALITY, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE MATERIALS.

Need more help?

Want more options?

Explore subscription benefits, browse training courses, learn how to secure your device, and more.

Communities help you ask and answer questions, give feedback, and hear from experts with rich knowledge.

  • Remove From My Forums
  • Question

  • Hi Guys,

    I am trying to import data from a Excel Sheet into a VFP 9.0 table.

    Excel File I have saved in Excel ver 5.0

    SELECT uploadfile  &&Table for importing the Excel data

    MyFile = GETFILE(«Excel *.xls:XLS»,»Import the excel file:»,»Import»,0,»Choose the file to import»)

    IF .NOT. EMPTY(MyFile)
        APPEND FROM MyFile TYPE XL5  
    ENDIF

    I keep on getting «File doesnt exist» error.

    Thanks in advance !

    • Edited by

      Wednesday, April 26, 2017 12:13 PM

Answers

  • July If your file or directory contain a space or spaces ... your command won't work 
    APPEND FROM MyFile TYPE XL5 
    
    You have to replace it for 
    APPEND FROM (MyFile) TYPE XL5      your variable between parenthesis
    • Edited by
      Benny Gabel
      Thursday, April 27, 2017 3:10 AM
    • Marked as answer by
      July Derek
      Thursday, April 27, 2017 3:42 AM

INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Contact US

Thanks. We have received your request and will respond promptly.

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!

  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It’s Free!

*Tek-Tips’s functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Import excel sheet to foxpro table?

Import excel sheet to foxpro table?

(OP)

28 Jun 12 14:32

Hi,

I want to import data from excel file into a vfp table. I tried with IMPORT command but it does not work…

here is the code i use:

CODE —>

MyFile = GETFILE("Excel *.xls:XLS","Import the excel file:","Import",0,"Choose the file to import")
IF NOT EMPTY(MyFile) THEN 
	IMPORT FROM JUSTFNAME(MyFile) TYPE XL8  && imports the XLS into a DBF
ENDIF 

Note: for the tests the excel file is in the application root folder.

At first i received the following error message:

«Microsoft Excel file format is invalid.»

I tought i was probably because the excel was in excel 2007 and this format is not supported by vfp… then i saved it in excel 97-2003 format. Now it seems to be working for 10 seconds and then it gives me this message:

«Microsoft Visual FoxPro 9.0 SP2 has stopped working
A problem caused the program to stop working correctly. Windows will close the program and notify you if a solution is availiable.»

Im out of ideas… any clue?

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Join Tek-Tips® Today!

Join your peers on the Internet’s largest technical computer professional community.
It’s easy to join and it’s free.

Here’s Why Members Love Tek-Tips Forums:

  • Tek-Tips ForumsTalk To Other Members
  • Notification Of Responses To Questions
  • Favorite Forums One Click Access
  • Keyword Search Of All Posts, And More…

Register now while it’s still free!

Already a member? Close this window and log in.

Join Us             Close

Импортирует данные из файла внешнего формата, создавая новую таблицу Visual FoxPro.

Синтаксис:

IMPORT FROM FileName
	[TYPE] FW2 | MOD | PDOX | RPD 
	| WK1 | WK3 | WKS | WR1 | WRK | XLS
	| XL5 [SHEET cSheetName]
	[AS nCodePage]

Параметры:
FileName
Задает имя файла, из которого нужно импортировать данные. Если имя файла указано без расширения, ему назначается расширение, используемое по умолчанию для заданного типа файлов.
TYPE
Само ключевое слово TYPE необязательно, но тип файла указать необходимо, ниже перечислены возможные значения:

  • FW2 — Задайте FW2, чтобы импортировать файлы FW2, созданные в Framework II.
  • MOD — Задайте MOD, чтобы импортировать файлы MOD, созданные в Microsoft Multiplan версии 4.01.
  • PDOX — Задайте PDOX, чтобы импортировать файлы Paradox. Файлы баз данных, созданные в системе Paradox версий 3.5 и 4.0 фирмы Borland, можно импортировать, задав опцию PDOX.
  • RPD — Задайте RPD, чтобы импортировать файлы RPD, созданные в RapidFile.
  • WK1 | WK3 | WKS — Задайте WK1, чтобы импортировать данные из электронной таблицы Lotus 1-2-3. Столбцы электронной таблицы становятся полями таблицы Visual FoxPro, а строки электронной таблицы становятся записями. Электронным таблицам, созданным в Lotus 1-2-3 редакции 2.x, назначается расширение имени WK1; электронным таблицам Lotus 1-2-3 редакции 3.x назначается расширение имени WK3; электронным таблицам, созданным в Lotus 1-2-3 редакции 1-A, назначается расширение имени .WKS.
  • WR1 | WRK — Задайте WR1, чтобы импортировать данные из электронной таблицы Lotus Symphony. Столбцы электронной таблицы становятся полями таблицы Visual FoxPro, а строки электронной таблицы становятся записями. Электронным таблицам, созданным в Symphony версии 1.10, назначается расширение имени WR1, а электронным таблицам, созданным в Symphony версии 1.01, назначается расширение имени .WRK.
  • XLS — Задайте XLS, чтобы импортировать данные из электронных таблиц Microsoft Excel версий 2.0, 3.0 и 4.0. Столбцы электронной таблицы становятся полями таблицы Visual FoxPro, а строки электронной таблицы становятся записями. Файлы электронных таблиц, созданные в Microsoft Excel, имеют расширение имени .XLS.
  • XL5 [SHEET cSheetName] — Задайте XL5, чтобы импортировать данные из Microsoft Excel версии 5.0. Столбцы электронной таблицы становятся полями таблицы Visual FoxPro, а строки электронной таблицы становятся записями. Файлы электронных таблиц, созданные в Microsoft Excel, имеют расширение имени .XLS.Если предложение SHEET опущено, импортируются данные из страницы Sheet1. Чтобы импортировать данные из другой страницы, укажите ключевое слово SHEET и задайте имя нужной страницы в качестве аргумента cSheetName.

AS nCodePage
Задает кодовую страницу импортируемого файла. Visual FoxPro копирует содержимое импортируемого файла и в процессе копирования данных автоматически преобразует их в текущую кодовую страницу Visual FoxPro.
Если заданная кодовая страница nCodePage не поддерживается, Visual FoxPro генерирует сообщение об ошибке. Выдав функцию GETCP( ) для кодовой страницы nCodePage, можно отобразить диалоговое окно Code Page и в нем задать кодовую страницу для импортируемого файла.
Если предложение AS nCodePage опущено и Visual FoxPro не может определить кодовую страницу импортируемого файла, Visual FoxPro копирует содержимое импортируемого файла и в процессе копирования данных автоматически преобразует их в текущую кодовую страницу Visual FoxPro. Если предложение AS nCodePage опущено и Visual FoxPro может определить кодовую страницу импортируемого файла, Visual FoxPro автоматически преобразует данные в импортируемом файле из их кодовой страницы в текущую кодовую страницу Visual FoxPro. Текущую кодовую страницу Visual FoxPro можно определить с помощью функции CPCURRENT( ).
Если значение nCodePage равно 0, предполагается, что кодовая страница импортируемого файла совпадает с текущей кодовой страницей Visual FoxPro, и преобразование кодовой страницы не производится.

Комментарии:
В большинстве программных продуктов данные хранятся в файлах таких форматов, которые нельзя открыть непосредственно в Visual FoxPro. Команда IMPORT создает новую таблицу Visual FoxPro из данных, хранящихся в файлах, которые Visual FoxPro не в состоянии сразу прочитать.
Новая таблица создается с тем же именем, что и у файла, из которого импортируются данные. Этой новой таблице присваивается расширение имени .DBF.

« Назад

Команда

COPY TO FileName [DATABASE DatabaseName [NAME LongTableName]]
                   [FIELDS FieldList | FIELDS LIKE Skeleton
                   | FIELDS EXCEPT Skeleton]
                   [Scope] [FOR lExpression1] [WHILE lExpression2]
                   [[WITH] CDX ] | [ [WITH] PRODUCTION ] [NOOPTIMIZE]
                   [[TYPE] [FOXPLUS | FOX2X | DIF | MOD | SDF
                   | SYLK | WK1 | WKS | WR1 | WRK | CSV | XLS |
                   XL5 | DELIMITED [ WITH Delimiter | WITH BLANK
                   | WITH TAB | WITH CHARACTER Delimiter ]]] [AS nCodePage]

создает новый файл, перенося в него содержимое текущей таблицы. Файл-приемник может содержать до 65535 строк.

Порядок копируемых записей определяется управляющим индексом (если он задан) таблицы-источника.

При копировании в DBF-таблицу базы данных сохраняется свойство AutoInc (если оно имеется в таблице-оригинале и если поле типа Integer (AutoInc) присутствует в списке копируемых полей). В таблице-приемнике значение первой записи поля типа Integer (AutoInc) определяется величиной NextValue таблицы-источника.

Опции и параметры (см. также табл. 1.7):

FileName – имя создаваемого файла. Если расширение не задано, то будет использовано расширение файла указанного в команде типа. Если тип файла не указан, то будет создана DBF-таблица.

DATABASE DatabaseName – имя базы данных, в которую добавляется новая таблица.

NAME LongTableName – длинное имя новой таблицы.

FIELDS FieldList – список копируемых полей. Имена полей в списке разделяются запятыми. Если опция опущена, то копируются все поля. Если файл-приемник не является DBF-таблицей, то memo-поле не копируется, даже если оно присутствует в FieldList.

FIELDS LIKE Skeleton – маска, определяющая состав копируемых полей: копируются все поля, удовлетворяющие маске.

FIELDS EXCEPT Skeleton – маска, определяющая состав копируемых полей: копируются все поля, маске не удовлетворяющие.

Параметр Skeleton может содержать символы * и ?.

[WITH] CDX | [WITH] PRODUCTION – создает для новой таблицы структурный индексный файл, идентичный файлу таблицы-источника. Опция не должна использоваться, если файл-приемник – это не DBF-таблица.

TYPE – задает тип файла-приемника. Возможные типы описаны в табл. 15.10; в нее также включены и типы файлов, импортируемых командами APPEND FROM и IMPORT.

Таблица 15.10

Типы экспортируемых и импортируемых файлов

Тип

Описание типа файла

Расширение

FOXPLUS

FoxBASE+

DBF и DBT
для memo

FOX2X

FoxPro версий 2.0, 2.5 и 2.6

DBF; FPT
для memo

FW2

Импорт данных из файла Framework II

FW2

DIF

VisiCalc DIF-файл (Data Interchange Format)

DIF

MOD

Microsoft Multiplan® версии 4.01

MOD

PDOX

Paradox версии 3.5 или 4.0

DB

RPD

RapidFile версии 1.2.

RPD

SDF

SDF-файл (System Data Format) – ASCII-текстовый файл с фиксированной длиной записи с CR и LF. Установка SET CENTURY игнорируется. Формат даты в файле должен быть ГГГГММДД. Тогда от будет успешно загружен в таблицу VFP при выполнении команды APPEND FROM

TXT

SYLK

SYLK-файл (Symbolic Link); используется в Microsoft MultiPlan®; не имеют расширения

WK1

Лист Lotus 1-2-3 версии 2.x

WK1

WK3

Лист Lotus 1-2-3 версии 3.x

WK3

WKS

Лист Lotus 1-2-3 версии 1а

WKS

WR1

Lotus Symphony версии 1.1 или 1.2

WR1

WRK

Lotus Symphony версии 1.0

WRK

CSV

Текстовый файл, использующий в качестве разделителя запятую. Первой строкой файла являются имена полей таблицы-источника; значения символьных полей обрамляются двойными кавычками. Имена полей игнорируются, когда файл импортируется

CSV

XLS

Microsoft Excel версии 2.0

XLS

XL5

Microsoft Excel версии 5.0

XLS

XL8

Microsoft Excel 97

XLS

Замечание. Версии Microsoft Excel ниже 8.0 (Excel 97) отображают первые 16384 строк файла-приемника, хотя он может содержать до 65535 строк.

DELIMITED – создает ASCII-текстовый файл, в котором между значения копируемых полей помещен разделитель. По умолчанию в качестве разделителя используется запятая. Поскольку символьные значения полей могут иметь запятую, то автоматически значения символьных полей обрамляются двойными кавычками, например:

select Authors

copy to d:a.txt delimited       && Переносим данные в файл d:a.txt

Одна строка файла d:a.txt:

1,»Личутин Владимир Владимирович»,11.22.2004,

Если расширение не указано, то автоматически используется TXT.

WITH Delimiter – задает символ, употребляемый взамен двойных кавычек. Разделителем по-прежнему является запятая, например:

copy to d:a.txt delimited with *

Одна строка файла d:a.txt:

1,*Личутин Владимир Владимирович*,11.22.2004,

WITH BLANK – в качестве разделителя используется пробел, а не запятая.

WITH TAB – в качестве разделителя берется символ табуляции, например:

copy to d:a.txt delimited with tab

WITH CHARACTER Delimiter – в качестве разделителя берется символ Delimiter. Если в качестве символа выбрана точка с запятой (символ, означающий продолжение строки VFP), то его нужно заключить в кавычки.

Опция может быть использована с опцией BLANK или TAB, или WITH Delimiter, например:

copy to d:a.txt delimited with # with character «;»

Одна строка файла d:a.txt:

1;#Личутин Владимир Владимирович#;11.22.2004;

AS nCodePage – задает кодовую страницу файла-приемника. Если опция опущена, то используется текущая кодовая страница. Если указана не поддерживаемая VFP кодовая страница, то генерируется ошибка.

Диалог выбора кодовой страницы открывается функцией GETCP( ). Текущая кодовая страница возвращается функцией CPCURRENT( ).

Команда

APPEND FROM FileName | ? [FIELDS FieldList] [FOR lExpression]
                   [[TYPE] DIF | FW2 | MOD | PDOX | RPD | SDF | SYLK | WK1 | WK3 | WKS
                   | WR1 | WRK | CSV | XLS | XL5 [SHEET cSheetName]
                   | XL8 [SHEET cSheetName] | [DELIMITED [WITH Delimiter
                  
| WITH BLANK | WITH TAB | WITH CHARACTER Delimiter]]]

                   [AS nCodePage]

добавляет записи в конец текущей таблицы из другого файла.

Опции и параметры:

FileName – имя файла-источника данных. Если расширение не задано и отсутствует опция TYPE, то берется расширение DBF. Если опция TYPE имеется, то берется расширение, задаваемое по умолчанию для файлов указанного типа. Если опция TYPE отсутствует и файл-источник – это таблица VFP или таблица, созданная более ранними версиями FoxPro, то файл должен иметь расширение DBF.

При добавлении из таблицы VFP ее записи, имеющие пометку удаления, будут добавляться, если SET DELETED установлен в OFF; пометка удаления у добавленных записей будет отсутствовать.

Для импортирования данных dBASE IV необходимо до выполнения команды APPEND FROM открыть в VFP таблицу-источник, применив команду USE. На вопрос, нужно ли конвертировать файл, следует ответить Yes.

Для добавления из временного курсора, созданного SELECT – SQL, можно использовать функцию DBF( ), возвращающую имя таблицы. Например:

append from DBF(‘Cur’)        && Добавляем из курсора Cur

FIELDS FieldList – список полей таблицы-приемника, в которые добавляются данные.

FOR lExpression – добавляются записи, удовлетворяющие логическому выражению lExpression.

TYPE – тип файла-источника данных. Опция TYPE обязательна, когда файл-источник не является таблицей VFP. Типы файлов описаны в табл. 15.10.

SHEET cSheetName – номер листа XLS-файла. Если опция опущена, то берется лист 1.

Смысл опции DELIMITED см. в описании команды COPY TO.

AS nCodePage – задает кодовую страницу файла-источника. Если опция опущена, то используется текущая кодовая страница. Если указана не поддерживаемая VFP кодовая страница, то генерируется ошибка.

Если опция опущена и VFP не может определить кодовую страницу файла-источника, то VFP автоматически конвертирует копируемые данные в кодовую страницу таблицы-приемника.

Если SET CPDIALOG установлен в ON и для таблицы-источника не установлена кодовая страница, то появится диалог выбора кодовой страницы.

Если nCodePage = 0, то VFP считает, что кодовые страницы файла-источника и файла-приемника совпадают. Данные копируются без преобразования их кодовой страницы.

Если в таблице-приемнике есть поле типа Integer (AutoInc) и оно имеется в списке заполняемых полей, то команда APPEND FROM не будет выполнена, если AUTOINCERROR установлен в ON. Путь преодоления проблемы – это установка SET AUTOINCERROR в OFF или задание функцией CURSORSETPROP( ) свойства AutoIncError курсора-приемника равным .F. При этом величины для AutoInc-поля будут соответствующим образом вычисляться, а имеющиеся значения в таблице-источнике игнорироваться.

Команда

IMPORT FROM FileName [DATABASE DatabaseName [NAME LongTableName]]
                   [TYPE] FW2 | MOD | PDOX | RPD | WK1 | WK3 | WKS
                   | WR1 | WRK | XLS | XL5 [SHEET cSheetName]
                   | XL8 [SHEET cSheetName] [AS nCodePage]

импортирует данные из файла FileName в новую таблицу VFP.

Опции и параметры см. в описании команд APPEND FROM и COPY TO.

Команда

EXPORT TO FileName [TYPE] DIF | MOD | SYLK | WK1 | WKS | WR1
                   | WRK | XLS | XL5 [FIELDS FieldList] [Scope] [FOR lExpression1]
                    [WHILE lExpression2] [NOOPTIMIZE] [AS nCodePage]

копирует данные текущей таблицы VFP в файл иного формата.

Опции и параметры см. в описании команд APPEND FROM и COPY TO.

Like this post? Please share to your friends:
  • Foxpdf word to pdf converter
  • Foxpdf excel to pdf converter
  • Foxit reader экспорт в word
  • Foxit reader как изменить на word
  • Foxit reader microsoft word