2017-07-17 619 views
0

我正在处理需要导出数据的应用程序。我将这些数据导出到JSON,DB,然后在Excel中创建一个证书。Excel无法找到任何要打印的内容

导出到excel和excel文件创建完美,但我无法打印excel。我尝试从我的应用程序(VB.NET)和VBA(检查是否与我的应用程序有问题),但都失败。如果我用excel打开文件,我无法打印它,并且虽然PrintRange已设置,但无法看到预览。

我总是

“的Excel找不到某物打印”

我试着打印工作簿,纸张和一个范围,但始终不变的。我也尝试设置worksheet.PageSetup.PrintArea和相同。尝试ExportAsFixedFormat不起作用。我还尝试将所有已安装的打印机设置为默认设置并且不进行任何操作,但每台打印机都会失败

只有使用此文件才会发生这种情况,其他任何文件都可以正常打印。

如果我打开文件 - 打印 - 也可以看到“Nothing to print”,而不是预览,尽管设置了打印范围。

现在,如果我点击一个单元格,写出某事物。并删除它或进行任何交互,然后我能够看到预览并打印文件。

如果我现在保存工作文件并尝试在一个简单的应用程序打开文件并打印它,坏消息出现。如果我在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) 

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

回答

0

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

我一直保存页面布局视图激活的文件。照片中间的一个。 Preview

今天我再次测试,我决定保存激活正常的布局和voilá它的作品!

我检查过,这绝对是修复...如果我激活任何文件中的页面布局,保存并尝试导出它....“Excel无法找到任何打印”。

这真的很奇怪(至少对我来说)这个错误。如果有人知道这是否有一个原因告诉我...我想也许是一个小错误。

0

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

我发现这个问题是由于打印设置: - 活动工作表 - 打印页面

选择意在打印出的纸张,确保它的“活动工作表”打印选项。 不会将页面视为工作表。页面是输出。

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

0

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