将整个工作簿另存为 PDF Excel 2010 (C#)

2023-12-04

无论如何,有没有办法将整个工作簿保存为 excel 中的 pdf 格式。我找到了这个,http://msdn.microsoft.com/en-us/library/bb407651(v=office.12).aspx,但它并没有确切地告诉您是将整个工作簿保存为 pdf 还是仅将活动工作表保存。如果无法将整个工作簿保存为 pdf,打印整个工作簿是否是最佳选择,甚至可以在 C# 中实现?以下是我到目前为止所拥有的内容,我只需要将其保存为 pdf 格式,以便我可以通过电子邮件发送。谢谢您的帮助。

using Excel = Microsoft.Office.Interop.Excel; //Excel Reference

//Gets Excel and gets Activeworkbook and worksheet

Excel.Application oXL;
Excel.Workbook oWB;
Excel.Worksheet oSheet;

//Create New Instance in Excel
oXL = new Excel.Application();
oXL.Visible = true;

//Open Excel Workbook
oWB = oXL.Workbooks.Open("");
oWB = (Excel.Workbook)oXL.ActiveWorkbook;
oSheet = (Excel.Worksheet)oWB.ActiveSheet;

//Modify Excel Spreadsheet Based on Form
oSheet.Cells[6, 4] = maskedTextBox1.Text; //Change Value in Cell, Cell Location [y-axis, x-axis]

//Save Workbook As
oWB.SaveAs("");

//Save Workbook As PDF


//Close Workbook
oWB.Close("");

//Quit Excel
oXL.Quit();

在 2010 年,您可以通过将每个工作表设为“活动”工作表,将整个工作簿保存为 PDF。 听起来很奇怪,但如果您在制作 pdf 时注意到打印选项,则没有工作簿选项。为了解决这个问题,请打开一个 Excel 文件并在 2-3 个工作表中填写一些数据。现在握住你的ctrl键并单击彼此的工作簿,它就会成为一个“组”。

您会注意到[GROUP]名称出现在 Excel 文件的顶部,现在当您打印 Excel 文件时,它将打印整个工作簿。

亲自尝试一下。在代码中,您只需将每个工作表设为活动工作表即可。我不太使用 Excel 对象模型,但为此做一个宏并查看代码可能是值得的。

我录制了一个宏,这是 VBA:

Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select

看起来好像您只需要将每个工作表存储在一个数组中,然后简单地

Sheets(MyArray).Select

然后,这将使所有工作表处于活动状态并[分组],然后您可以将其打印为 pdf。通过记录宏,它还提供了打印为 pdf 的选项:

`ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    "C:\Users\MyAccount\Desktop\test.pdf", Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
    True`

在这种情况下,活动工作表是您存储在数组中的一组工作表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将整个工作簿另存为 PDF Excel 2010 (C#) 的相关文章

  • 如何在没有 Control.Invoke() 的情况下从后台线程修改控件属性

    最近 我们遇到了一些旧版 WinForms 应用程序 我们需要更新一些新功能 在专家测试该应用程序时 发现一些旧功能被破坏 无效的跨线程操作 现在 在您认为我是新手之前 我确实有一些 Windows 窗体应用程序的经验 我不是专家 但我认为
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 已过时 - OpenCV 的错误模式

    我正在使用 OpenCV 1 进行一些图像处理 并且对 cvSetErrMode 函数 它是 CxCore 的一部分 感到困惑 OpenCV 具有三种错误模式 叶 调用错误处理程序后 程序终止 Parent 程序没有终止 但错误处理程序被调
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • C++ 成员函数中的“if (!this)”有多糟糕?

    如果我遇到旧代码if this return 在应用程序中 这种风险有多严重 它是一个危险的定时炸弹 需要立即在应用程序范围内进行搜索和销毁工作 还是更像是一种可以悄悄留在原处的代码气味 我不打算writing当然 执行此操作的代码 相反
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • Unity3d 在 Android 上共享图像

    尝试在 Unity 游戏上实现 Android 图像共享 我整理了几个源代码 这是我当前的代码 public static void shareImage string subject string title string message
  • 对枚举值进行排序

    我想知道是否有任何方法可以为不同的类订购枚举 例如 如果我有一组固定的化学物质 它们以不同的方式与其他化学物质发生反应 有些反应强烈 有些反应较弱 我基本上希望能够根据该组应该反应的化学物质 即取决于类别 来改变它们的排列顺序 我确实知道我
  • Javascript:用逗号分割字符串,括号内除外

    给定字符串的形式 abc ab c d e f g zyx h 123 如何拆分它以获得以下数组格式 abc ab c d e f g zyx h 123 我已经尝试过正常的 javascript split 但是它无法按预期工作 尝试正则
  • 浮点数比较不匹配

    我有一个非常奇怪的错误 我无法弄清楚 float distance Utils distance this spriteStartX this spriteStartY this getX this getY Utils log D Che
  • Java,按对象获取ArrayList索引

    所以我在我的代码中遇到了一个小问题 synchronized clients clients remove this 当客户端断开连接时 但现在我需要能够将该客户端的名称发送给所有其他客户端 为此 我本质上需要执行类似的操作 synchro
  • 确保方法声明是继承的

    如何防止在打算继承定义的情况下意外定义非继承方法 我听说有一个技巧可以表达它 但没有人能记住它 解释 我有类树 Base 在派生链的某个地方 agrglist 中存在微妙的错误 导致 D 不可继承 程序顺利编译 并且在运行时调用了错误的方法
  • 如何检查VB.NET代码中Access SysCmd失败的原因?

    我们有一个用 VB NET 以及客户端中的 VBA 开发的应用程序 在 VB NET 开发的安装程序自定义操作中 我们使用 Access 的 SysCmd 603 将 mdb 文件编译为 mde 该命令众所周知未记录 示例代码如下所示 a
  • Android 上 OpenCV 中位图和 Mat 之间转换的正确方法?

    我目前正在尝试将一些遗留代码从 iPhone 迁移到 Android 此代码使用 OpenCV 库进行一些图像处理 我不明白如何在 Mat 和 Android Bitmap 类之间进行转换 此代码显示了一个非常简化的示例 它将位图加载到 M
  • 使用总和而不是计数绘制分箱数据

    我试图寻找答案 但似乎找不到适合我的答案 我有一个数据集 data 有两个变量 人们的年龄 age 和奖项数量 awards 我的目标是绘制 R 中奖项数量与年龄的关系 仅供参考 一个人可以获得多个奖项 并且人们可以拥有相同的年龄 我尝试绘
  • __LITTLE_ENDIAN_BITFIELD 和 __BIG_ENDIAN_BITFIELD? [复制]

    这个问题在这里已经有答案了 我想知道内核编译器将如何处理不同的字节序位域 struct iphdr if defined LITTLE ENDIAN BITFIELD u8 ihl 4 version 4 elif defined BIG
  • 将 SetFields 与 MongoDB C# 驱动程序 2.0 结合使用

    使用旧驱动程序 我可以指定要从查询返回的字段 如下所示 var cursor Collection Find query SetFields Fields
  • 将索引添加到 Google App Engine 上数据存储区中已存在的实体属性

    我知道您应该将 Index 添加到实体模型中的所有属性以添加索引 但是如果您忘记并且数据存储中已经存在实体的实时写入怎么办 有没有办法通过开发人员控制台或其他方式手动向所有这些属性添加索引 我发现 如果您将 Index 添加到实体并重新部署
  • 如何在 Jaxb 中忽略 XML 中的某些标签

    我的xml文件如下
  • 使用 java 和 iText 签署 PDF 哈希值

    我有一个生成 PDF 的应用程序 需要签名 我们没有用于签署文档的证书 因为它们位于 HSM 中 而我们使用证书的唯一方法是使用 Web 服务 PdfReader reader new PdfReader src reader setApp
  • 无法让 pysnmp 与 pyinstaller 一起使用

    尝试让 pyinstaller 与 pysnmp 一起使用这是规范文件 mode python a Analysis app py pathex home robertja pysnmp hiddenimports None hookspa
  • 在 scipy 中重现 sox 频谱图

    例如 我有一个带有语音的 wav 文件 我可以使用 sox 创建漂亮的频谱图可视化 wget https google github io tacotron publications tacotron2 demos romance gt w
  • BitBlt - 使用另一个应用程序的 HDC 时捕获的像素全为零 (bgra)

    由于 Nick Nougat 的答案中的代码 我可以使用 BitBlt 和 GetDIBits 成功捕获部分屏幕here 捕获整个屏幕或桌面似乎可行 但是当我提供应用程序的 HDC 时 它会打印奇怪的数据 以 bgra 格式 HWND de
  • IE8 中的无表表格布局

    有没有办法复制exactly这个布局没有表格 仅使用CSS和div 没有Javascript IE8 http jsfiddle net u0u7snh6 2 我尝试过多种场景IE8似乎很混乱 Height of the content c
  • C# MessageBox 导致按键处理程序忽略 SuppressKeyPress

    考虑具有以下组件的 Windows 窗体应用程序 partial class Form1 private System Windows Forms TextBox textBox new System Windows Forms TextB
  • 将整个工作簿另存为 PDF Excel 2010 (C#)

    无论如何 有没有办法将整个工作簿保存为 excel 中的 pdf 格式 我找到了这个 http msdn microsoft com en us library bb407651 v office 12 aspx 但它并没有确切地告诉您是将