Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何格式化信息I';您是否已从SbClient中选择下载到UniBasic中的Excel?_Excel_Dynamic Arrays_Basic_Dde - Fatal编程技术网

如何格式化信息I';您是否已从SbClient中选择下载到UniBasic中的Excel?

如何格式化信息I';您是否已从SbClient中选择下载到UniBasic中的Excel?,excel,dynamic-arrays,basic,dde,Excel,Dynamic Arrays,Basic,Dde,下面的代码是用UniBasic编写的,我正试图从SB客户端下载一些数据。显然,变量名不是实际的名称或类似的名称。 现在,它将选择我想要的数据,并将其写入Excel文件。问题是所有数据都在一个单元格中(确切地说是A1),我需要它以excel文件的形式存在(每个元素位于不同的单元格中)。下面是将数据放入Excel文件的代码,之后是放入Excel文件的数据示例 INFORMATION.DOWNLOAD: E_APPLICATION = "Excel" E_TOPIC = "C:/ExcelFiles/

下面的代码是用UniBasic编写的,我正试图从SB客户端下载一些数据。显然,变量名不是实际的名称或类似的名称。 现在,它将选择我想要的数据,并将其写入Excel文件。问题是所有数据都在一个单元格中(确切地说是A1),我需要它以excel文件的形式存在(每个元素位于不同的单元格中)。下面是将数据放入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之类的错误(使用
调用TU.DDE.GET.error(E_HANDLE,E_STATUS4)
)。我目前正在实现一个
READNEXT
for循环,但是,我想在尝试之前,我会很快在这里发布这个问题。到目前为止,它看起来也不太有希望

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

编辑:以下是放入单元格中的数据示例:

“苹果公司500.00¦100.00¦威瑞森200.00¦100.00¦直言不讳50000.00¦40000.00¦SpaceX¦1000.00¦1000.000”


^显然是编造的数据^

不幸的是,我不相信目前有一个用于直接写入.xlsx的原生UniBasic工具。但是,使用UniBasic可以相当方便地写入.csv格式。我经常这样做,如果我需要将文件重新格式化为其他格式(例如xslx),就使用Excel

通常,如果我要输出到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