Excel找不到任何要打印的内容

时间:2017-07-17 21:09:00

标签: .net excel vb.net printing export-to-excel

我正在开发一个需要导出数据的应用程序。我将这些数据导出到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)

我在这张表中有一个图表,但我不认为图表是问题,因为我可以使用相同的代码打印其他文件。

3 个答案:

答案 0 :(得分:1)

我刚刚第一次遇到同样的错误。我意识到我已经更改了工作簿中的一个工作表,只打印了四页中的第四页,并且相同的设置显然适用于没有四页的其他工作表。清除页码(4个中的4个)解决了问题。

答案 1 :(得分:0)

我终于(2周后)找到解决方案,至少它对我有用。

我已经一直保存了激活了pagelayout视图的文件。照片中间的一个。  Preview

今天我再次进行测试,我决定保存激活正常布局,并且它可以正常运行!!!

我已经检查过,这肯定是修复...如果我在任何文件中激活pagelayout,保存并尝试导出....“Excel无法找到任何要打印的内容。”

这个错误真的很奇怪(至少对我而言)。如果有人知道是否有理由告诉我......我认为这可能是一个小错误。

答案 2 :(得分:0)

我有同样的问题。视图已处于“正常”布局中。

我发现问题是由于打印设置造成的: - 活动表 - 打印页面

选择要打印的纸张,确保它是打印选项中的“活动纸张”。 不要将页面视为表格。页面是输出。

如果从当前工作表打印出来只有1页,特别是当缩放设置为“适合工作表到1页”时,输出中将不超过1页,并尝试从2开始打印页面将确实有这个错误。