A help please - Una Ayuda por Favor
- Jose Marte2
- Posts: 50
- Joined: Thu Nov 16, 2017 2:19 pm
- Location: República Dominicana
A help please - Una Ayuda por Favor
Ingles:
Greetings to all, I hope you are well.
I apologize for the moletias. I would like if you can help with what I'm going to ask you now.
I have a DBF table that I filled with several records.
I use the dc_workarea2excel () instruction to export that table to excel. All perfect, the problem is that I have an alphanumeric field that contains characters that starts with 031, for example. When you export the table to excel in that column, you lose 0 and only put 31.
Could you give some help with this topic? Thanks in advance.
Español:
Saludos a todos, espero que estén bien.
Pido disculpas por las moletias. Me gustaría preguntarte ahora.
Tengo una tabla DBF que llené con varios registros.
Uso la declaración dc_workarea2excel () para exportar esa tabla a Excel. Todo perfecto, el problema es que tengo un campo alfanumérico que contiene caracteres que comienzan con 031, por ejemplo. Cuando exporta la tabla para sobresalir en esa columna, pierde 0 y solo pone 31.
¿Podrías dar alguna ayuda con este tema? Gracias por adelantado.
			
			
									
									Greetings to all, I hope you are well.
I apologize for the moletias. I would like if you can help with what I'm going to ask you now.
I have a DBF table that I filled with several records.
I use the dc_workarea2excel () instruction to export that table to excel. All perfect, the problem is that I have an alphanumeric field that contains characters that starts with 031, for example. When you export the table to excel in that column, you lose 0 and only put 31.
Could you give some help with this topic? Thanks in advance.
Español:
Saludos a todos, espero que estén bien.
Pido disculpas por las moletias. Me gustaría preguntarte ahora.
Tengo una tabla DBF que llené con varios registros.
Uso la declaración dc_workarea2excel () para exportar esa tabla a Excel. Todo perfecto, el problema es que tengo un campo alfanumérico que contiene caracteres que comienzan con 031, por ejemplo. Cuando exporta la tabla para sobresalir en esa columna, pierde 0 y solo pone 31.
¿Podrías dar alguna ayuda con este tema? Gracias por adelantado.
José Marte
Software & Servicios
						Software & Servicios
Re: A help please - Una Ayuda por Favor
Jose
Una manera rápida , es renombrar el archivo .dbf a .xls
y otra alternativa es usar esta librería
HBLibXL.PRG - Klassendefinitionen für Xbase++ und LibXL.DLL
* HBLibXL.PRG - CLASS CODE for Xbase++ und LibXL.DLL
** My Homepage: http://www.familie-brandel.de (german
* http://www.familie-brandel.de/index_e.html (english)
A quick way is to rename the .dbf file to .xls.
and another alternative is to use this library LibXL.DLL
Saludos
Héctor Pezoa
			
			
									
									
						Una manera rápida , es renombrar el archivo .dbf a .xls
y otra alternativa es usar esta librería
HBLibXL.PRG - Klassendefinitionen für Xbase++ und LibXL.DLL
* HBLibXL.PRG - CLASS CODE for Xbase++ und LibXL.DLL
** My Homepage: http://www.familie-brandel.de (german
* http://www.familie-brandel.de/index_e.html (english)
A quick way is to rename the .dbf file to .xls.
and another alternative is to use this library LibXL.DLL
Saludos
Héctor Pezoa
Re: A help please - Una Ayuda por Favor
Jose -
Upload your database.
I will figure out what to do about this.
			
			
									
									Upload your database.
I will figure out what to do about this.
 The eXpress train is coming - and it has more cars.
						- Jose Marte2
- Posts: 50
- Joined: Thu Nov 16, 2017 2:19 pm
- Location: República Dominicana
Re: A help please - Una Ayuda por Favor
rdonnay wrote:Jose -
Upload your database.
I will figure out what to do about this.
Yes sir. thank you
- Attachments
- 
			
		
		
				- EXCEL607.zip
- (9.95 KiB) Downloaded 1250 times
 
José Marte
Software & Servicios
						Software & Servicios
- Jose Marte2
- Posts: 50
- Joined: Thu Nov 16, 2017 2:19 pm
- Location: República Dominicana
Re: A help please - Una Ayuda por Favor
Mr. thank you very much for your attention.Jose Marte2 wrote:rdonnay wrote:Jose -
Upload your database.
I will figure out what to do about this.
Yes sir. thank you
I can complete the idea of what I want to do.
That table that filled with several dbf
of invoices, returns, credit notes, etc. I need it to arrive organized to excel by a column specified in this case by the column IDCLIE as you will see it in the table that you send as an example.
Thank you
Epañol:
Sr. muchas gracias por su atencion.
Le puedo completar la idea de lo que quiero hacer.
Esa tabla que lleno de varios dbf
de facturas, devoluciones, notas de creditos, etc. la necesito que llegue organizada a excel por una columna especifica en este caso por la columna IDCLIE como usted lo vera en la tabla que le envie de ejemplo.
Gracias
José Marte
Software & Servicios
						Software & Servicios
- Jose Marte2
- Posts: 50
- Joined: Thu Nov 16, 2017 2:19 pm
- Location: República Dominicana
Re: A help please - Una Ayuda por Favor
patito wrote:Jose
Una manera rápida , es renombrar el archivo .dbf a .xls
y otra alternativa es usar esta librería
HBLibXL.PRG - Klassendefinitionen für Xbase++ und LibXL.DLL
* HBLibXL.PRG - CLASS CODE for Xbase++ und LibXL.DLL
** My Homepage: http://www.familie-brandel.de (german
* http://www.familie-brandel.de/index_e.html (english)
A quick way is to rename the .dbf file to .xls.
and another alternative is to use this library LibXL.DLL
Mr. thank you very much, for the help and for your attention
Muchas gracias señor, por la ayuda y por su atención.
Saludos
Héctor Pezoa
José Marte
Software & Servicios
						Software & Servicios
Re: A help please - Una Ayuda por Favor
I am guessing that you have an older version of eXpress++.
This problem was resolved several years ago in eXpress++ code.
Attached is Worksheet.xls created from the most current version.
You need to modify your DC_WorkArea2Excel() function in _DCFUNCT.PRG.
Then you need to rebuild your DCLIPX.DLL by running BUILD19_SL1.BAT or BUILD20.BAT
Here is the source code for the most current version of DC_WorkArea2Excel().
			
							This problem was resolved several years ago in eXpress++ code.
Attached is Worksheet.xls created from the most current version.
You need to modify your DC_WorkArea2Excel() function in _DCFUNCT.PRG.
Then you need to rebuild your DCLIPX.DLL by running BUILD19_SL1.BAT or BUILD20.BAT
Here is the source code for the most current version of DC_WorkArea2Excel().
Code: Select all
FUNCTION DC_WorkArea2Excel( cExcelFile, nOrientation, lDisplayAlerts, ;
                            lVisible, aFields, lAutoFit, cDateFormat, aFieldEvals, ;
                            cPassword, lFreezeRow1, lCsvFallBack, aColumnNames )
LOCAL oExcel, oBook, oSheet, nRow, aStru, i, cHeader, ;
      cFieldName, cFieldType, nFieldLen, nFieldDec, cFormat, ;
      xValue, GetList[0], GetOptions, oDlg, nCount := 0, ;
      cDbfName, nKeyCount, oProgress, lStatus := .t., aData, ;
      cRow, cColumns, cRange, aRow, bError, aStru2, nFound, ;
      cFieldValue, nFieldBlock, cValue, aScope
DEFAULT nOrientation := xlLandscape, ;
        lDisplayAlerts := .f., ;
        lVisible := .f., ;
        lAutoFit := .f., ;
        cDateFormat := "US", ;     // US, USSHORT, EURO, EUROSHORT, or send custom?
        aFieldEvals := {}, ;
        cExcelFile := DC_Path(AppName(.t.)) + 'worksheet.xls', ;
        lFreezeRow1 := .t., ;
        lCsvFallBack := .f.
//  aFieldEvals -> {{FIELDNAME,CodeBlock},....}  Code blocks to evaluate for specific fields
#if XPPVER > 1900000
  // Create the "Excel.Application" object
  IF '.CSV' $ Upper(cExcelFile)
    RETURN DC_WorkArea2Csv(cExcelFile)
  ENDIF
  oExcel := CreateObject("Excel.Application")
  IF Empty( oExcel )
    IF lCsvFallBack
      DCMSGBOX 'Excel is not installed. Create CSV file instead?' YESNO TO lStatus
      IF lStatus
        RETURN DC_WorkArea2Csv(cExcelFile)
      ELSE
        RETURN .f.
      ENDIF
    ELSE
      DC_WinAlert( "Excel is not installed" )
    ENDIF
    RETURN .f.
  ENDIF
#else
  DC_WinAlert('This feature is available in Xbase++ 1.9 and later only!')
  RETURN .f.
#endif
IF upper(cDateFormat) = "USSHORT"
  cDateFormat := "m\/d\/yyyy;@"
ELSEIF upper(cDateFormat) = "US"
  cDateFormat := "mm\/dd\/yyyy;@"
ELSEIF upper(cDateFormat) = "EUROSHORT"
  cDateFormat := "d\/m\/yyyy;@"
ELSEIF upper(cDateFormat) = "EURO"
  cDateFormat := "dd\/mm\/yyyy;@"
ENDIF
// Avoid message boxes such as "File already exists". Also,
// ensure the Excel application is visible.
oExcel:DisplayAlerts := lDisplayAlerts
oExcel:visible       := lVisible
// Add a workbook to the Excel application. Query for
// the active sheet (sheet-1) and set up page/paper
// orientation.
cDbfName := dbInfo(DBO_FILENAME)
IF cDbfName = '<CURSOR>'
  nKeyCount := RecCount()
ELSE
  nKeyCount := DC_KeyCount()
ENDIF
aScope := DC_SetScopeArray()
@ 0,0 DCSAY 'Creating Excel Worksheet: ' + cExcelFile SAYSIZE 0
@ 1,0 DCPROGRESS oProgress SIZE 50,1 ;
      TYPE XBPSTATIC_TYPE_TEXT ;
      COLOR GRA_CLR_CYAN, GRA_CLR_WHITE ;
      PERCENT ;
      PERCENTCOLOR GRA_CLR_RED ;
      RADIUS 20 ;
      OUTLINE ;
      DYNAMIC ;
      EVERY Int(nKeyCount/100)
@ 3,0 DCPUSHBUTTON CAPTION 'Cancel' SIZE 9,1.2 ACTION {||lStatus:=.f.}
DCGETOPTIONS NORESIZE ALWAYSONTOP _PIXEL .f.
DCREAD GUI FIT TITLE 'Exporting to Excel' ;
   MODAL EXIT PARENT @oDlg OPTIONS GetOptions NOAUTORESTORE
oBook  := oExcel:workbooks:Add()
oSheet := oBook:ActiveSheet
oSheet:PageSetup:Orientation := nOrientation
DC_DbGoTop()
nRow := 1
// Feed in the data from the table to the Cells
// of the sheet.
aStru := dbStruct()
IF Valtype(aFields) == 'A'
  aStru2 := AClone(aStru)
  aStru := Array(0)
  FOR i := 1 TO Len(aFields)
    cFieldName := Upper(Alltrim(aFields[i]))
    nFound := AScan(aStru2,{|a|Upper(a[1])==cFieldName})
    IF nFound > 0
      AAdd( aStru, aStru2[nFound] )
    ENDIF
  NEXT
ENDIF
aFields := Array(0)
FOR i := 1 TO Len(aStru)
  cFieldName := aStru[i,1]
  nFieldDec := aStru[i,4]
  IF Valtype(&(cFieldName)) $ 'NF'
    IF nFieldDec == 0
      cFormat := '0'
    ELSE
      cFormat := '0.' + Repl('0',nFieldDec)
    ENDIF
  ELSEIF Valtype(&(cFieldName))=='D'
    cFormat := cDateFormat
  ELSEIF Valtype(&(cFieldName)) $ 'CM'
    cFormat := "@"                        // Preserves leading 0s on strings that look like numbers
  ELSE
    cFormat := ''
  ENDIF
  AAdd(aFields,{cFieldName,cFieldName,cFormat})
NEXT
FOR i := 1 TO Len(aFields)
  IF Len(aFields[i]) < 3
    ASize(aFields[i],3)
  ENDIF
  IF Valtype(aColumnNames) == 'A' .AND. Len(aColumnNames) == Len(aFields)
    cHeader := aColumnNames[i]
  ELSE
    cHeader := aFields[i,2]
  ENDIF
  IF !Empty(cHeader)
    oSheet:Cells(nRow,i):Value := cHeader
  ENDIF
  cFormat := aFields[i,3]
  IF !Empty(cFormat)
    oSheet:Columns(i):NumberFormat := cFormat
  ENDIF
NEXT
aRow := Array(Len(aStru))
aData := Array(0)
cColumns := Get_Excel_Column_ID(Len(aRow))
nRow += 2
DO WHILE !DC_Eof() .AND. lStatus
  DC_CompleteEvents()
  DC_GetProgress(oProgress,nCount++,nKeyCount)
  FOR i := 1 TO Len(aFields)
    cFieldName := aFields[i,1]
    IF Valtype(cFieldName) == 'C'
      cFieldValue := &(cFieldName)
      nFieldBlock := aScan(aFieldEvals,{|a|upper(a[1])==upper(cFieldName)})
      IF nFieldBlock > 0
        cFieldValue := Eval(aFieldEvals[nFieldBlock,2],cFieldValue)
      ENDIF
    ELSEIF Valtype(cFieldName) == 'B'
      cFieldValue := Eval(cFieldName)
    ENDIF
    IF Valtype(cFieldValue) == 'D'
      aRow[i] := Dtoc(cFieldValue)
    ELSEIF Valtype(cFieldValue) = 'C'
      aRow[i] := Trim(cFieldValue)
    ELSEIF Valtype(cFieldValue) = 'M'
      cValue := Substr(Trim(cFieldValue),1,1024)
      aRow[i] := cValue
    ELSE
      aRow[i] := cFieldValue
    ENDIF
  NEXT
  AAdd( aData, AClone(aRow) )
  nRow++
  DC_DbSkip(1)
  IF !Empty(aScope) .AND. !(Recno()$aScope)
    EXIT
  ENDIF
ENDDO
cRange := 'A3:' + cColumns + Ltrim(Str(nRow-1))
oDlg:destroy()
oSheet:Range(cRange):Value := aData
// Force a reformat for the size of the first column
IF lAutoFit
  FOR i := 1 TO Len(aFields)
    oSheet:Columns(i):AutoFit()
  NEXT
ENDIF
IF lFreezeRow1
  oSheet:Range("A1:A1"):EntireRow:Font:Bold := .t.
  oSheet:Activate()
  oSheet:Application:ActiveWindow:SplitRow := 1
  oSheet:Application:ActiveWindow:FreezePanes := .T.
ENDIF
bError := ErrorBlock( {|e| Break(e) } )
BEGIN SEQUENCE
  IF '.XLSX' $ Upper(cExcelFile)
    // Save workbook as ordinary excel file.
    oBook:SaveAs(cExcelFile,xlOpenXMLWorkbook,cPassword)
  ELSE
    // Save workbook as ordinary excel file
    oBook:SaveAs(cExcelFile,xlWorkbookNormal,cPassword)
  ENDIF
RECOVER
END SEQUENCE
ErrorBlock(bError)
oSheet:destroy()
oBook:close()
oBook:destroy()
// Quit Excel
oExcel:Quit()
oExcel:Destroy()
RETURN .t.- Attachments
- 
			
		
		
				- Excel607.zip
- (41.66 KiB) Downloaded 1285 times
 
 The eXpress train is coming - and it has more cars.
						- Jose Marte2
- Posts: 50
- Joined: Thu Nov 16, 2017 2:19 pm
- Location: República Dominicana
Re: A help please - Una Ayuda por Favor
rdonnay wrote:I am guessing that you have an older version of eXpress++.
This problem was resolved several years ago in eXpress++ code.
Attached is Worksheet.xls created from the most current version.
You need to modify your DC_WorkArea2Excel() function in _DCFUNCT.PRG.
Then you need to rebuild your DCLIPX.DLL by running BUILD19_SL1.BAT or BUILD20.BAT
Here is the source code for the most current version of DC_WorkArea2Excel().
Code: Select all
FUNCTION DC_WorkArea2Excel( cExcelFile, nOrientation, lDisplayAlerts, ; lVisible, aFields, lAutoFit, cDateFormat, aFieldEvals, ; cPassword, lFreezeRow1, lCsvFallBack, aColumnNames ) LOCAL oExcel, oBook, oSheet, nRow, aStru, i, cHeader, ; cFieldName, cFieldType, nFieldLen, nFieldDec, cFormat, ; xValue, GetList[0], GetOptions, oDlg, nCount := 0, ; cDbfName, nKeyCount, oProgress, lStatus := .t., aData, ; cRow, cColumns, cRange, aRow, bError, aStru2, nFound, ; cFieldValue, nFieldBlock, cValue, aScope DEFAULT nOrientation := xlLandscape, ; lDisplayAlerts := .f., ; lVisible := .f., ; lAutoFit := .f., ; cDateFormat := "US", ; // US, USSHORT, EURO, EUROSHORT, or send custom? aFieldEvals := {}, ; cExcelFile := DC_Path(AppName(.t.)) + 'worksheet.xls', ; lFreezeRow1 := .t., ; lCsvFallBack := .f. // aFieldEvals -> {{FIELDNAME,CodeBlock},....} Code blocks to evaluate for specific fields #if XPPVER > 1900000 // Create the "Excel.Application" object IF '.CSV' $ Upper(cExcelFile) RETURN DC_WorkArea2Csv(cExcelFile) ENDIF oExcel := CreateObject("Excel.Application") IF Empty( oExcel ) IF lCsvFallBack DCMSGBOX 'Excel is not installed. Create CSV file instead?' YESNO TO lStatus IF lStatus RETURN DC_WorkArea2Csv(cExcelFile) ELSE RETURN .f. ENDIF ELSE DC_WinAlert( "Excel is not installed" ) ENDIF RETURN .f. ENDIF #else DC_WinAlert('This feature is available in Xbase++ 1.9 and later only!') RETURN .f. #endif IF upper(cDateFormat) = "USSHORT" cDateFormat := "m\/d\/yyyy;@" ELSEIF upper(cDateFormat) = "US" cDateFormat := "mm\/dd\/yyyy;@" ELSEIF upper(cDateFormat) = "EUROSHORT" cDateFormat := "d\/m\/yyyy;@" ELSEIF upper(cDateFormat) = "EURO" cDateFormat := "dd\/mm\/yyyy;@" ENDIF // Avoid message boxes such as "File already exists". Also, // ensure the Excel application is visible. oExcel:DisplayAlerts := lDisplayAlerts oExcel:visible := lVisible // Add a workbook to the Excel application. Query for // the active sheet (sheet-1) and set up page/paper // orientation. cDbfName := dbInfo(DBO_FILENAME) IF cDbfName = '<CURSOR>' nKeyCount := RecCount() ELSE nKeyCount := DC_KeyCount() ENDIF aScope := DC_SetScopeArray() @ 0,0 DCSAY 'Creating Excel Worksheet: ' + cExcelFile SAYSIZE 0 @ 1,0 DCPROGRESS oProgress SIZE 50,1 ; TYPE XBPSTATIC_TYPE_TEXT ; COLOR GRA_CLR_CYAN, GRA_CLR_WHITE ; PERCENT ; PERCENTCOLOR GRA_CLR_RED ; RADIUS 20 ; OUTLINE ; DYNAMIC ; EVERY Int(nKeyCount/100) @ 3,0 DCPUSHBUTTON CAPTION 'Cancel' SIZE 9,1.2 ACTION {||lStatus:=.f.} DCGETOPTIONS NORESIZE ALWAYSONTOP _PIXEL .f. DCREAD GUI FIT TITLE 'Exporting to Excel' ; MODAL EXIT PARENT @oDlg OPTIONS GetOptions NOAUTORESTORE oBook := oExcel:workbooks:Add() oSheet := oBook:ActiveSheet oSheet:PageSetup:Orientation := nOrientation DC_DbGoTop() nRow := 1 // Feed in the data from the table to the Cells // of the sheet. aStru := dbStruct() IF Valtype(aFields) == 'A' aStru2 := AClone(aStru) aStru := Array(0) FOR i := 1 TO Len(aFields) cFieldName := Upper(Alltrim(aFields[i])) nFound := AScan(aStru2,{|a|Upper(a[1])==cFieldName}) IF nFound > 0 AAdd( aStru, aStru2[nFound] ) ENDIF NEXT ENDIF aFields := Array(0) FOR i := 1 TO Len(aStru) cFieldName := aStru[i,1] nFieldDec := aStru[i,4] IF Valtype(&(cFieldName)) $ 'NF' IF nFieldDec == 0 cFormat := '0' ELSE cFormat := '0.' + Repl('0',nFieldDec) ENDIF ELSEIF Valtype(&(cFieldName))=='D' cFormat := cDateFormat ELSEIF Valtype(&(cFieldName)) $ 'CM' cFormat := "@" // Preserves leading 0s on strings that look like numbers ELSE cFormat := '' ENDIF AAdd(aFields,{cFieldName,cFieldName,cFormat}) NEXT FOR i := 1 TO Len(aFields) IF Len(aFields[i]) < 3 ASize(aFields[i],3) ENDIF IF Valtype(aColumnNames) == 'A' .AND. Len(aColumnNames) == Len(aFields) cHeader := aColumnNames[i] ELSE cHeader := aFields[i,2] ENDIF IF !Empty(cHeader) oSheet:Cells(nRow,i):Value := cHeader ENDIF cFormat := aFields[i,3] IF !Empty(cFormat) oSheet:Columns(i):NumberFormat := cFormat ENDIF NEXT aRow := Array(Len(aStru)) aData := Array(0) cColumns := Get_Excel_Column_ID(Len(aRow)) nRow += 2 DO WHILE !DC_Eof() .AND. lStatus DC_CompleteEvents() DC_GetProgress(oProgress,nCount++,nKeyCount) FOR i := 1 TO Len(aFields) cFieldName := aFields[i,1] IF Valtype(cFieldName) == 'C' cFieldValue := &(cFieldName) nFieldBlock := aScan(aFieldEvals,{|a|upper(a[1])==upper(cFieldName)}) IF nFieldBlock > 0 cFieldValue := Eval(aFieldEvals[nFieldBlock,2],cFieldValue) ENDIF ELSEIF Valtype(cFieldName) == 'B' cFieldValue := Eval(cFieldName) ENDIF IF Valtype(cFieldValue) == 'D' aRow[i] := Dtoc(cFieldValue) ELSEIF Valtype(cFieldValue) = 'C' aRow[i] := Trim(cFieldValue) ELSEIF Valtype(cFieldValue) = 'M' cValue := Substr(Trim(cFieldValue),1,1024) aRow[i] := cValue ELSE aRow[i] := cFieldValue ENDIF NEXT AAdd( aData, AClone(aRow) ) nRow++ DC_DbSkip(1) IF !Empty(aScope) .AND. !(Recno()$aScope) EXIT ENDIF ENDDO cRange := 'A3:' + cColumns + Ltrim(Str(nRow-1)) oDlg:destroy() oSheet:Range(cRange):Value := aData // Force a reformat for the size of the first column IF lAutoFit FOR i := 1 TO Len(aFields) oSheet:Columns(i):AutoFit() NEXT ENDIF IF lFreezeRow1 oSheet:Range("A1:A1"):EntireRow:Font:Bold := .t. oSheet:Activate() oSheet:Application:ActiveWindow:SplitRow := 1 oSheet:Application:ActiveWindow:FreezePanes := .T. ENDIF bError := ErrorBlock( {|e| Break(e) } ) BEGIN SEQUENCE IF '.XLSX' $ Upper(cExcelFile) // Save workbook as ordinary excel file. oBook:SaveAs(cExcelFile,xlOpenXMLWorkbook,cPassword) ELSE // Save workbook as ordinary excel file oBook:SaveAs(cExcelFile,xlWorkbookNormal,cPassword) ENDIF RECOVER END SEQUENCE ErrorBlock(bError) oSheet:destroy() oBook:close() oBook:destroy() // Quit Excel oExcel:Quit() oExcel:Destroy() RETURN .t.
Ingles:
Greetings, Mr.
Thank you very much for your help and your attentions
Mr. I apologize but to perform the operation that tells me the compilation gives me the following errors
variable xlOpenXMLWorkbook not found and function DC_WorkArea2Csv not found
Could you help me with that part
Thank you.
Español:
Saludos, Sr.
Mil gracias por su ayuda y sus atenciones
Sr. me disculpa pero a realizar la operacion que me dice el la compilacion me da los siguientes errores
variable xlOpenXMLWorkbook no encontrada y funcion DC_WorkArea2Csv no encontrada
Me podria usted ayudar con esa parte
Muchas gracias.
José Marte
Software & Servicios
						Software & Servicios
Re: A help please - Una Ayuda por Favor
that is a Constant of Excel COM.Jose Marte2 wrote: variable xlOpenXMLWorkbook not found
you can get these COM Constant using Tlb2Ch.exe and CLSID or ProgID
open a CMD Box and copy/ paste this
Code: Select all
Tlb2Ch.exe "Excel.Application" >> EXCEL.CHp.s. Tlb2Ch.exe is found in same Directory like XPP.EXE
greetings by OHR
Jimmy
						Jimmy
- Eugene Lutsenko
- Posts: 1649
- Joined: Sat Feb 04, 2012 2:23 am
- Location: Russia, Southern federal district, city of Krasnodar
- Contact:
Re: A help please - Una Ayuda por Favor
The reason for the described problem is that the number with leading zero is perceived as a number, not as a text. There are several very simple ways to fix this. 
1. Make a fictitious string in the database with text values in the fields. Then the entire field will be treated as a text type field.
2. Instead of the number 0 to write the letter O.
3. Before numbers with leading zeros to put some character, can be not displayed.
			
			
									
									
						1. Make a fictitious string in the database with text values in the fields. Then the entire field will be treated as a text type field.
2. Instead of the number 0 to write the letter O.
3. Before numbers with leading zeros to put some character, can be not displayed.



