请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

白杨

中级会员

58

主题

116

帖子

558

积分

中级会员

积分
558
白杨
中级会员   /  发表于:2025-10-25 17:32  /   查看:108  /  回复:4
1金币
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

我这是已经解决的方案发上来给大家分享的,非求助

4 个回复

最佳答案
最佳答案
白杨
中级会员   /  发表于:2025-10-25 17:32:14
来自 4#
Grayson.Shang 发表于 2025-10-27 15:26
大佬您好,AUX我们也不太懂,咱们的代码我们不会使用,若是咱们担心exe文件被ban,可以把exe文件打成一个压 ...

我这是已经解决的方案发上来给大家分享的,非求助

评分

参与人数 1金币 +66 收起 理由
Grayson.Shang + 66 赞一个!不过一般咱们的资源分享是在,格友.

查看全部评分

回复 使用道具 举报
白杨
中级会员   /  发表于:2025-10-25 17:35:23
2#
AU3代码,发EXE怕有人说病毒


Func WriteToExcelCellsFromTXT($sFilePath, $sTxtFile, $sOutputPath = "")
    If Not FileExists($sFilePath) Or Not FileExists($sTxtFile) Then Return False
   
    ; 如果未指定输出路径,则使用模板文件路径
    If $sOutputPath = "" Then
        $sOutputPath = $sFilePath
    EndIf
   
    ; 读取TXT文件内容
    Local $hFile = FileOpen($sTxtFile, 0) ; 0 = 只读模式
    If $hFile = -1 Then Return False
   
    Local $sJsonContent = FileRead($hFile)
    FileClose($hFile)
   
    ; 解析JSON内容
    Local $aCellData = ParseSimpleJSON($sJsonContent)
    If @error Then Return False
   
    Local $oExcel = ObjCreate("Excel.Application")
    If @error Then Return False
   
    $oExcel.DisplayAlerts = False
    $oExcel.ScreenUpdating = False
   
    Local $oWorkbook = $oExcel.Workbooks.Open($sFilePath)
    If @error Then
        $oExcel.Quit()
        Return False
    EndIf
   
    Local $oWorksheet = $oWorkbook.ActiveSheet
   
    ; 遍历所有单元格数据并写入
    For $i = 0 To UBound($aCellData) - 1
        Local $sCell = $aCellData[$i][0]
        Local $sContent = $aCellData[$i][1]
        
        ; 写入内容到指定单元格
        $oWorksheet.Range($sCell).Value = $sContent
    Next
   
    ; 保存到指定路径
    $oWorkbook.SaveAs($sOutputPath)
    $oWorkbook.Close()
    $oExcel.Quit()
   
    Return True
EndFunc

; 解析简单的JSON格式 [{"A5": "内容1","B5": "内容2"},{"A6": "内容3","B6": "内容4"}]
Func ParseSimpleJSON($sJson)
    ; 去除空格和换行
    $sJson = StringReplace($sJson, @CR, "")
    $sJson = StringReplace($sJson, @LF, "")
    $sJson = StringStripWS($sJson, 8) ; 去除所有空格
   
    ; 检查基本格式
    If Not StringLeft($sJson, 2) = "[{" Or Not StringRight($sJson, 2) = "}]" Then
        Return SetError(1, 0, 0)
    EndIf
   
    ; 移除外层的方括号
    $sJson = StringMid($sJson, 3, StringLen($sJson) - 4)
   
    ; 分割对象
    Local $aObjects = StringSplit($sJson, "},{", 1) ; 1 = 整个字符串分割
    If @error Then Return SetError(2, 0, 0)
   
    Local $aResult[0][2]
   
    For $i = 1 To $aObjects[0]
        Local $sObject = $aObjects[$i]
        
        ; 分割键值对
        Local $aPairs = StringSplit($sObject, ",", 1)
        If @error Then ContinueLoop
        
        For $j = 1 To $aPairs[0]
            Local $sPair = $aPairs[$j]
            
            ; 分割键和值
            Local $aKeyValue = StringSplit($sPair, ":", 1)
            If $aKeyValue[0] <> 2 Then ContinueLoop
            
            ; 提取键(单元格位置)
            Local $sKey = $aKeyValue[1]
            $sKey = StringReplace($sKey, '"', "")
            
            ; 提取值(内容)
            Local $sValue = $aKeyValue[2]
            $sValue = StringReplace($sValue, '"', "")
            
            ; 添加到结果数组
            Local $iSize = UBound($aResult)
            ReDim $aResult[$iSize + 1][2]
            $aResult[$iSize][0] = $sKey
            $aResult[$iSize][1] = $sValue
        Next
    Next
   
    Return $aResult
EndFunc

; 使用示例
回复 使用道具 举报
Grayson.Shang活字格认证 Wyn认证
超级版主   /  发表于:2025-10-27 15:26:46
3#
大佬您好,AUX我们也不太懂,咱们的代码我们不会使用,若是咱们担心exe文件被ban,可以把exe文件打成一个压缩包上传,我们可以尝试复现一下。
回复 使用道具 举报
Erik.Xue讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2025-10-27 17:37:27
5#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部