1

html5 と javascript を使用しています。Java スクリプトから Excel ファイルを読み取り、出力を表示しています。最初にコードを分析してください。

 <input type="button" id="btnSubmit" onclick="readdata(1, 2)" value="Submit" />

 

var xVal = 1;
var yVal = 2

    function readdata(x,y) {
        x = xVal;
        y = yVal;
        try {
            var excel = new ActiveXObject("Excel.Application");
            excel.Visible = false;
            var excel_file = excel.Workbooks.Open("D:\\Test.xls");// alert(excel_file.worksheets.count);
            var excel_sheet = excel_file.Worksheets("Sheet1");
            var data = excel_sheet.Cells(x, y).Value;
            //alert(data);
            drawWithexcelValue(data);
            xVal = xVal + 1;
        }
        catch (ex) {
            alert(ex);
        }

今、私はこのコードからファイルを読み取り、このコードで出力を表示しています:

function drawWithexcelValue(val) {

    var txtSpeed = val; //alert(txtSpeed.value);
    if (txtSpeed !== null) {

        iTargetSpeed = txtSpeed;

        // Sanity checks
        if (isNaN(iTargetSpeed)) {
            iTargetSpeed = 0;
        } else if (iTargetSpeed < 0) {
            iTargetSpeed = 0;
        } else if (iTargetSpeed > 80) {
            iTargetSpeed = 80;
        }

        job = setTimeout("draw()", 5);
    }
}

Q .1 送信ボタンをクリックするたびに、Excel ファイルの値が表示されます。送信ボタンを毎回クリックする必要がないようにしたいのですが、たとえば 4 秒間、ある時間間隔で値が自動的に表示されます。 .

Q :-2 送信ボタンが欲しくありませんでした。つまり、このコードを実行すると、onload ="readdata(1, 2)" というスクリプトが自動的に実行されますが、表示される値は 1 つだけです ...方法一定の時間間隔ですべての値を表示します..助けてください!!!!!

編集したコードを教えていただければ、本当に助かります

4

1 に答える 1

2

ここで、このコードはきっとうまくいくでしょう

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Speedometer HTML5 Canvas</title>

    <script src="script copy.js">

</script>

</head>
<body onload='draw(0);'>
    <canvas id="tutorial" width="440" height="220">
            Canvas not available.
        </canvas>
    <div id="divHidden" style="visibility: hidden; width: 0px; height: 0px">
        <form id="drawTemp">
        <input type="text" id="txtSpeed" name="txtSpeed" value="20" maxlength="2" />
        <input type="button" value="Draw" onclick="drawWithInputValue();">
        <input type="file" id="file" onchange="checkfile(this);" />
       <input type="button" id="btnSubmit" onclick="readdata(1, 2)" value="Submit" /> 


    <button onclick="myStopFunction()">Stop Meter</button>


        </form>
    </div>
</body>
</html>

<script type="text/javascript" language="javascript">


    var myVar=setInterval(function(){readdata(1,2)},2000);
    function myStopFunction()
    {
        clearInterval(myVar);
    }


    function checkfile(sender) {
        var validExts = new Array(".xlsx", ".xls", ".csv");
        var fileExt = sender.value;
        fileExt = fileExt.substring(fileExt.lastIndexOf('.'));
        if (validExts.indexOf(fileExt) < 0) {
            alert("Invalid file selected, valid files are of " +
               validExts.toString() + " types.");
            return false;
        }
        else return true;

    }
var xVal = 1;
var yVal = 2

    function readdata(x,y) {
        x = xVal;
        y = yVal;
        try {
            var excel = new ActiveXObject("Excel.Application");
            excel.Visible = false;
            var excel_file = excel.Workbooks.Open("D:\\Test.xls");// alert(excel_file.worksheets.count);
            var excel_sheet = excel_file.Worksheets("Sheet1");
            var data = excel_sheet.Cells(x, y).Value;
            //alert(data);
            drawWithexcelValue(data);
            xVal = xVal + 1;
            if(data==null || data=="")
            { 
            myStopFunction(); 
            }
            excel.Application.Quit();
        }
        catch (ex) {
            alert(ex);
        }
    }
</script>
于 2013-07-29T20:41:44.990 に答える