我正在开发一个应用程序,需要导出数据。我将此数据导出到 JSON、DB,然后在 Excel 中创建一个证书。
导出到 Excel 和创建 Excel 文件工作正常,但我无法打印 Excel。我从我的应用程序 (VB.NET) 和 VBA 中进行了尝试(以检查我的应用程序是否有问题),但都失败了。如果我用 Excel 打开文件,尽管设置了 PrintRange,但我无法打印它并且看不到预览。
我总是得到
“Excel 找不到要打印的内容”
我尝试打印工作簿、工作表和范围,但总是一样。我也尝试设置
worksheet.PageSetup.PrintArea
和相同的。尝试 ExportAsFixedFormat
也不起作用。我还尝试将所有已安装的打印机设置为默认打印机,但什么也没有,每台打印机都失败。
这种情况仅发生在该文件上,任何其他文件打印都没有问题。
如果我打开文件——进行打印——尽管设置了打印范围,但也会看到“无可打印”而不是预览。
现在,如果我单击一个单元格,请写一些东西。并删除它或进行任何交互,然后我就可以看到预览并打印文件。
如果我现在保存工作文件并尝试在一个简单的应用程序中打开该文件并打印它,则会出现错误消息。如果我在 Excel 中重新打开该文件,我将不会再次看到预览,并且必须与该文件交互才能打印。
我已经尝试了所有我能做的,也疯狂地搜索,但一切都奏效了。
我希望有人遇到过同样的问题并可以帮助我,或者只是知道我做错了什么或我的 Excel 文件有什么问题,因为这是我一生中第一次(并且经常使用 Excel)已经看到这条消息了。
导出代码有点长,所以我没有在这里发布,但它是这样的:
Public Shared Function ExportCalibrationAsync(pressureCalibration As PressureCalibration, filePath As String, fileName As String, excelTemplate As Byte()) As Task 'TODO:Refactor...Not use 2.dots
Return Task.Run(Sub()
CheckFileName(fileName)
Dim fullPath = Path.Combine(filePath, fileName)
Dim tempFileName = Path.GetTempFileName()
Dim tempFullPath = Path.Combine(filePath, tempFileName)
Dim excel = New Excel.Application()
Dim row = 1
'Write the passed excel template to a tempFile
My.Computer.FileSystem.WriteAllBytes(tempFullPath, excelTemplate, False)
Dim excelWorkbooks = excel.Workbooks
'Add template workbook to actual workbook
Dim excelWorkbook As Excel.Workbook = excelWorkbooks.Open(tempFullPath)
'////////////
'////Code to Export data to excel
'////////////
'//ExportAsFixedFormat or Print doesn't work and
'//MsgBox pops up with "Excel could not find anything to print"
excelWorkSheet.PageSetup.PrintArea="$A$1:$G$40"
excelWorkSheet.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF,filePath,XlFixedFormatQuality.xlQualityStandard)
excelWorkbook.SaveAs(fullPath)
excelWorkbook.Close()
excel.Application.Quit()
excel.Quit()
File.Delete(tempFullPath)
GC.Collect()
GC.WaitForPendingFinalizers()
GC.Collect()
GC.WaitForPendingFinalizers()
Marshal.ReleaseComObject(calibrationChartObject)
我在这张表中有一个图表,但我不认为图表是问题所在,因为我可以使用相同的代码打印带有图表的其他文件。
我第一次遇到同样的错误。 我意识到我已将工作簿中的一个工作表更改为仅打印四页中的第四页,并且相同的设置显然应用于其他没有四页的工作表。 清除页码(第 4 页,共 4 页)解决了该问题。
我也有同样的问题。视图已经处于正常布局。
我发现问题是由于打印设置造成的: - 活动表 - 打印页面
选择要打印的工作表,确保它是打印选项中的“活动工作表”。 不要将页面视为工作表。页面是输出。
如果从当前工作表仅打印 1 页,特别是当缩放设置为“适合工作表至 1 页”时,输出中将不会超过 1 页,并且尝试从第 2 页开始打印肯定会出现问题。这个错误。
当您错误地将要打印的页码选择为不可用的页码时,也会出现此错误。