问题描述
我正在运行将数据表导出到 Excel 的代码。由于这需要一段时间,我不想混淆用户并显示图像
Dim _excel As New Microsoft.Office.Interop.Excel.Application
Dim wBook As Microsoft.Office.Interop.Excel.Workbook
Dim wSheet As Microsoft.Office.Interop.Excel.Worksheet
PictureLoading.Visible = True
wBook = _excel.Workbooks.Add()
wSheet = wBook.ActiveSheet()
Dim dt As System.Data.DataTable = GetTableForCompleteArchive()
Dim dc As System.Data.DataColumn
Dim dr As System.Data.DaTarow
Dim colIndex As Integer = 0
Dim rowIndex As Integer = 0
PictureLoading.Refresh()
For Each dc In dt.Columns
colIndex += 1
_excel.Cells(1,colIndex) = dc.ColumnName
Next
PictureLoading.Refresh()
For Each dr In dt.Rows
rowIndex += 1
colIndex = 0
For Each dc In dt.Columns
colIndex += 1
_excel.Cells(rowIndex + 1,colIndex) = dr(dc.ColumnName)
Next
Next
PictureLoading.Refresh()
wSheet.Columns.AutoFit()
Dim strFileName As String = Application.StartupPath & "\Export.xlsx" '"C:\datatable.xlsx"
If System.IO.File.Exists(strFileName) Then
System.IO.File.Delete(strFileName)
End If
PictureLoading.Refresh()
wBook.SaveAs(strFileName)
wBook.Close()
_excel.Quit()
PictureLoading.Visible = False
问题是图像冻结并且没有动画。有没有办法在等待过程时使图像动画?
解决方法
function wpdocs_replaceALT( $content ) {
if ( is_single() && in_the_loop() && is_main_query() ) {
libxml_use_internal_errors( true );
$post = new DOMDocument();
$post->loadHTML( $content );
$images = $post->getElementsByTagName( 'img' );
foreach ( $images as $image ) {
$view_photog = '';
$src = $image->getAttribute( 'src' );
$image_id = attachment_url_to_postid( $src );
$media = get_post( $image_id );
$caption = $media->post_excerpt;
$photographer_relationship = get_field( 'photographer',$image_id );
$photographer = ( is_array( $photographer_relationship ) && !empty( $photographer_relationship ) ) ? array_shift( $photographer_relationship ) : null;
if ( !empty( $photographer ) ) {
$link_to_photographer = get_permalink( $photographer );
$view_photog = '<a class="learn-more-photog-link" target="_blank" href="' . $link_to_photographer . '">View Photographer</a>';
}
$link_text = '' . $caption . '' . $view_photog . '';
if ( empty( $image->getAttribute( 'title' ) ) ) {
$image->setAttribute( 'title',$link_text );
}
}
$content = $post->saveHTML();
return $content;
}
}
add_filter( 'the_content','wpdocs_replaceALT' );
我的函数是从 Private Sub TotalArchiveToolStripMenuItem_Click(sender As Object,e As EventArgs) Handles EXCELToolStripMenuItem.Click
BackgroundWorker1.WorkerSupportsCancellation = True
BackgroundWorker1.WorkerReportsProgress = True
'call this method to start your asynchronous Task.
BackgroundWorker1.RunWorkerAsync()
'display the loading image
PictureLoading.Visible = True
End Sub
Private Sub BackgroundWorker1_DoWork(sender As Object,e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
'call the function to export to Excel
Export2Excel()
If BackgroundWorker1.CancellationPending Then
e.Cancel = True
End If
End Sub
Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object,e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
'' This event is fired when your BackgroundWorker exits.
'' It may have exitted Normally after completing its task,'' or because of Cancellation,or due to any Error.
PictureLoading.Visible = False
End Sub
内部运行的。当我点击 Backgroundworker_DoWork
时图像设置为可见,完成 TotalArchiveToolStripMenuItem
后设置为不可见。