Working with Excel inside Python

AleydisGP at gmail.com AleydisGP at gmail.com
Sun Jan 7 22:35:27 CET 2007


I have a .plt file (which is a tab delimited ASCII file) and I want to
format it to get a .dbf with data in rows and columns, detele some
rows/columns and substitute decimal '.' with ','. All this using Python
(I'm using Pythonwin).

The .plt file looks like this:

* ISCST3 (02035): Tersa
* MODELING OPTIONS USED:
*  CONC                    URBAN ELEV         DFAULT

*         PLOT FILE OF ANNUAL VALUES FOR SOURCE GROUP: ALL
*         FOR A TOTAL OF   400 RECEPTORS.
*         FORMAT: (3(1X,F13.5),1X,F8.2,2X,A6,2X,A8,2X,I8.8,2X,A8)
*        X             Y      AVERAGE CONC   ZELEV
*  ___________   ___________   ___________   ______
  430342.00000 4580537.00000       0.25426    19.28
  430842.00000 4580537.00000       0.27233    14.72
  431342.00000 4580537.00000       0.30566     2.84
  431842.00000 4580537.00000       0.30379     0.21
  432342.00000 4580537.00000       0.27413     1.13
  432842.00000 4580537.00000       0.25462     0.00
  433342.00000 4580537.00000       0.25114     0.00
  433842.00000 4580537.00000       0.28779     0.00
  434342.00000 4580537.00000       0.29707     0.00
  434842.00000 4580537.00000       0.31067     0.00
 ....


I recorded a macro in Excel with the whole process, but when trying to
translate it into Python I get syntax errors which I don't know how to
solve.

This is my python code:
## ------------------------------------------
import win32com.client
excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = 0
workbook=excel.Workbooks.Open('D:\AN00GALL.plt')

excel.Columns("A:A").Select
excel.Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

excel.Columns("A:A").Select
excel.Selection.TextToColumns Destination:=Range("A1"),
DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(2, 1), Array(14, 1),
Array(29, 1), Array(42, 1), _
        Array(53, 1), Array(59, 1), Array(71, 1), Array(79, 1)),
ThousandsSeparator:=" ", _
        TrailingMinusNumbers:=True

excel.Selection.Delete Shift:=xlToLeft

excel.Rows("1:6").Select
excel.Selection.Delete Shift:=xlUp
excel.Rows("2:2").Select
excel.Selection.Delete Shift:=xlUp

excel.Columns("A:C").Select
excel.Selection.NumberFormat = "0.00000"
excel.Columns("D:D").Select
excel.Selection.NumberFormat = "0.00"
excel.ActiveWorkbook.SaveAs Filename:= _
    "D:\AN00GALL.dbf", FileFormat:= _
    xlDBF4, CreateBackup:=False

excel.Quit()
## ------------------------------------------

Any ideas on what am I doing wrong?
Thank you.




More information about the Python-list mailing list