如何格式化我从 SbClient 选择的信息,以便下载到 UniBasic 中的 Excel?



以下代码单位为单位,我正在尝试从sb-client下载一些数据。显然,变量名称不是实际的名称或类似的名称。截至目前,它将选择我想要的数据,并将其写入Excel文件。问题是所有数据都在一个单元格中(准确地说是A1),我需要它实际以Excel文件的形式(每个元素都在不同的单元格中)。这是将数据放入Excel文件中的代码,之后是放入其中数据的示例。

INFORMATION.DOWNLOAD:
E_APPLICATION = "Excel"
E_TOPIC = "C:/ExcelFiles/File.xlsx"
E_ITEMNAME = "R1C1:R50C50"
E_TIMEOUT = 200
EXECUTE ("SELECT MYFILE CUSTOMERS AMOUNT_DUE AMOUNT_PAID SAMPLE 25")
READSELECT E_DATA THEN
END

现在,上面的代码已成功选择了我想要的信息。但是,它是所选列表的形式。然后,我继续执行此操作:

CALL TU.DDE.CONNECT(E_APPLICATION, E_TOPIC, E_HANDLE, E_STATUS)
CALL TU.DDE.WRITE(E_HANDLE, E_ITEMNAME, E_TIMEOUT, E_DATA, E_STATUS2)
CALL TU.DDE.DISCONNECT(E_HANDLE, E_STATUS3)

现在,我尝试使用READLIST,但是它会引发有关Saveslist.map或类似内容的错误(使用CALL TU.DDE.GET.ERROR(E_HANDLE, E_STATUS4)获得的错误(获得)。我目前正在实施循环的READNEXT,但是,我认为在尝试之前,我会很快在此处发布此问题。到目前为止,目前看起来并不有希望。

如果你们需要更多信息,请告诉我。

编辑:这是放入单元格内的数据的示例:

"苹果500.00.00.00.00°verizon ¦200.00.100.00°straight talk ¦ 50000.00.40000.00 r.00 spacex ¦

^显然构成了数据^

不幸的是,我不相信当前有一个直接写入.xlsx的本机Unibasic工具。但是,写入.csv格式的单位相当访问。我经常这样做,然后如果需要将文件重新格式化到其他内容(例如.xslx)。

通常,如果我要输出到CSV,则我将在值标记划界单元格的情况下构建变量,并将标记标记为定界行。然后,在输出文件之前,我将将值标记更改为逗号,并将标记归因于新行。

(在这种情况下,我首先简单地用逗号划分了值。)

知道您每行有三个数据列,类似的数据将使您的数据变成所需的格式:

EXECUTE ("SELECT MYFILE CUSTOMERS AMOUNT_DUE AMOUNT_PAID SAMPLE 25")
CSV_DATA = ''
IX = 0
LOOP
READNEXT CUSTOMER ELSE EXIT   ;* don't have any more data lines so exit loop
READNEXT AMOUNT_DUE ELSE AMOUNT_DUE = ''
READNEXT AMOUNT_PAID ELSE AMOUNT_PAID = ''
IX += 1
CSV_DATA<IX> = CUSTOMER :',': AMOUNT_DUE :',': AMOUNT_PAID
REPEAT

然后,我通常会按照此行定义一些内容,以将数据输入CSV格式:

EQU NEWLINE TO CHAR(13):CHAR(10)   ;* this is for Windows
SWAP AM WITH NEWLINE IN CSV_DATA

然后,您可以使用代码的其余部分将CSV_DATA编写为文件。

最新更新