我有3个.txt
文件,我使用COM-Handle创建Excel工作表。任何人都可以帮我如何设置分隔符?我的Excel工作表已创建,但列不是逗号分隔。
请参阅我收到的文件的附件截图。我希望它在不同的列中。
DEFINE VARIABLE chExcel AS COM-HANDLE NO-UNDO。 DEFINE VARIABLE chWorksheet1 AS COM-HANDLE NO-UNDO。 DEFINE VARIABLE chWorksheet2 AS COM-HANDLE NO-UNDO。 DEFINE VARIABLE chWorkbook1 AS COM-HANDLE NO-UNDO。 DEFINE VARIABLE chWorkbook2 AS COM-HANDLE NO-UNDO。 DEFINE VARIABLE iQtArq AS INTEGER NO-UNDO。 DEFINE VARIABLE iPOS AS INTEGER NO-UNDO。 DEFINE VARIABLE idx AS INTEGER NO-UNDO。
DEFINE TEMP-TABLE tt-arq
FIELD nomeArq AS CHAR.
CREATE tt-arq.
tt-arq.nomeArq = "C:\damgra\excel\Test1.txt".
CREATE tt-arq.
tt-arq.nomeArq = "C:\damgra\excel\Test2.txt".
CREATE tt-arq.
tt-arq.nomeArq = "C:\damgra\excel\Test3.txt".
CREATE "excel.application" chExcel.
iQtArq = 0.
FOR EACH tt-arq.
iQtArq = iQtArq + 1.
IF iQtArq = 1 THEN DO:
chWorkbook1=chExcel:Workbooks:Open(tt-arq.nomeArq).
chWorksheet1=chWorkbook1:Worksheets(1).
chWorksheet1:NAME = "test" + STRING(iQtArq).
NEXT.
END.
iPos = chWorkbook1:sheets:COUNT .
chWorkbook2=chExcel:Workbooks:Open(tt-arq.nomeArq).
DO idx = 1 TO (chWorkbook2:sheets:COUNT):
iPos = iPos + 1.
chWorksheet2=chWorkbook2:Worksheets(idx).
chWorksheet2:NAME = "plan" + STRING(iPos).
END.
chWorksheet2=chWorkbook2:Worksheets(1).
chWorksheet1=chWorkbook1:Worksheets(chWorkbook1:sheets:COUNT).
chWorksheet1:Activate.
chWorkbook2:Sheets:move(,chWorksheet1).
END.
chWorksheet1=chWorkbook1:Worksheets(1).
chWorksheet1:Activate.
chExcel:visible=true.
IF valid-handle(chWorksheet1) THEN RELEASE OBJECT chWorksheet1.
IF valid-handle(chWorksheet2) THEN RELEASE OBJECT chWorksheet2.
IF valid-handle(chWorkbook1 ) THEN RELEASE OBJECT chWorkbook1 .
IF valid-handle(chWorkbook2 ) THEN RELEASE OBJECT chWorkbook2 .
IF valid-handle(chExcel ) THEN RELEASE OBJECT chExcel.
我对Excel非常熟悉,但不是通过4GL生成Excel文档,但无论如何我都会冒险回答:
我怀疑您正在为Excel创建基于文本的文件(即非二进制或非XLS格式)。简单地添加逗号不会创建单独的列。
你可以试试几件事:
CSV
,如c:\mypath\MyFile.csv
。当在Excel中打开具有.csv
扩展名的文件时,它会将逗号分隔为列。
1)打开NOTEPAD.EXE
2)复制/粘贴在本文中:
This is my CSV File called: myFile.csv
This is column A,and this is column B, column C,D,E,F
If I need to include a comma in the text,"I wrap it, in quotes, in the CSV file."
A,B,C,D,E,F,G
3)使用名称保存文件:myFile.csv
4)关闭文件,然后双击†将其打开。
†(如果您的系统上的Excel不是associated with the .CSV
file type类型,则可能需要打开Excel,然后在Excel中打开CSV文件。)
Excel将不会AutoFit CSV
文件中的列(或允许任何其他格式),但双击列头之间将自动调整。
另一种选择,而不是使用逗号,使用Tab字符(ASCII Code 9)。 Excel还可以将制表符识别为列分隔符。
Ashleedawg的回答可能是正确的,但让我给出一些进步方面的背景:这很可能是你如何出口这个问题。如果您将TXT文件转换为电子表格,则取决于您是将其作为电子表格导出到Excel,然后您必须为要数据的单元格命名,或者将其导出为CSV和Comma应该被识别为分隔符,除非用户计算机专门使用另一个符号作为默认值,简而言之。因此,如果您希望生成CSV,则实际上不需要com-handle。您可以使用vanilla OUTPUT TO并使其全部为文本,或者如果您使用com-handle,您很可能必须逐字段处理它(当然,您可以使用BUFFER-FIELD循环缓冲区中的字段用(行整数,col整数)命名单元格,如果内存对我很好的话。无论如何,我们分析你如何输出这个代码的一些代码将会更多地阐明它。