난 그냥 엑셀 파일을 업로드하고 그것에 대한 처리를하려고합니다. 단계별로 진행 상황을 보여주고 싶습니다. 저는 백그라운드 작업자와 웹 메소드 등을 사용한 실제 진행 상황을 보여주기 위해 많은 노력을 기울였습니다. 그러나 이제는 JavaScript와 AJAX의 도움으로이 작업을 수행하려고합니다. 내가 BackgroundWorker에 함께 시도했습니다ActiveXObject를 사용하지 않고 javascript에서 Excel 파일을 읽는 방법은 무엇입니까?
코드는 다음과
Imports System.ComponentModel
Imports System.Threading
Public Class _Default
Inherits Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
End Sub
Dim bw As BackgroundWorker = New BackgroundWorker
Public Shared stopWorker As Boolean = False
Public Function startWorker() As Int16
If Not bw.IsBusy = True Then
bw.RunWorkerAsync()
End If
Return 0
End Function
Public Function testww(sender As Object, e As EventArgs) As Int16
bw.WorkerSupportsCancellation = True
bw.WorkerReportsProgress = True
AddHandler bw.DoWork, AddressOf bw_DoWork
AddHandler bw.ProgressChanged, AddressOf bw_ProgressChanged
AddHandler bw.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted
Return 0
End Function
Private Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs)
Dim worker As BackgroundWorker = CType(sender, BackgroundWorker)
For i = 1 To 500
If bw.CancellationPending = True Then
e.Cancel = True
Exit For
Else
' Perform a time consuming operation and report progress.
System.Threading.Thread.Sleep(500)
bw.ReportProgress(i * 0.5)
End If
Next
End Sub
Private Sub bw_ProgressChanged(ByVal sender As Object, ByVal e As ProgressChangedEventArgs)
Me.tbProgress.Text = e.ProgressPercentage.ToString() & "%"
End Sub
Private Sub bw_RunWorkerCompleted(ByVal sender As Object, ByVal e As RunWorkerCompletedEventArgs)
If e.Cancelled = True Then
Me.tbProgress.Text = "Canceled!"
ElseIf e.Error IsNot Nothing Then
Me.tbProgress.Text = "Error: " & e.Error.Message
Else
Me.tbProgress.Text = "Done!"
End If
End Sub
Private Shared Sub WorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs)
Dim worker As BackgroundWorker = TryCast(sender, BackgroundWorker)
If worker IsNot Nothing Then
System.Threading.Thread.Sleep(3000)
If Not stopWorker Then
worker.RunWorkerAsync()
Else
While stopWorker
Thread.Sleep(6000)
End While
worker.RunWorkerAsync()
End If
End If
End Sub
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
bw.WorkerSupportsCancellation = True
bw.WorkerReportsProgress = True
AddHandler bw.DoWork, AddressOf bw_DoWork
AddHandler bw.ProgressChanged, AddressOf bw_ProgressChanged
AddHandler bw.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted
Dim result = startWorker()
End Sub
End Class
이며, 프런트 엔드 나는
<%@ Page Title="Home Page" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="true" Async="true" CodeBehind="Default.aspx.vb" Inherits="WebApplication2._Default" %>
<asp:Content runat="server" ID="FeaturedContent" ContentPlaceHolderID="FeaturedContent">
</asp:Content>
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<asp:TextBox ID="tbProgress" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" />
</asp:Content>
같은 텍스트 상자에 값을 변경 그냥 피곤 해요 도와주세요.
클라이언트 컴퓨터에서 자바 스크립트를 사용하여 Excel 파일을 읽을 수 없습니다. –
잘 작동하지만 100 %의 루프를 사용하여 마침내 표시되는 것처럼 작업 완료율의 단계별 비율을 원합니다. 완료) 상태와 사용자는 '완료'를 볼 수 있습니다. 그러나 나는 1 % 다음 2 %처럼하고 싶어 ... 100 % 다음 완료! –
변경 될 때마다 진행률 표시 줄을 다시로드해야합니다. –