EXCEL导出PDF代码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EXCEL导出PDF代码?相关的知识,希望对你有一定的参考价值。

大神们:
我想实现一键按钮导出PDF,输出到桌面为类似“XXX 3月份”的文件。代码如下,为什么啥报错? (代码是抄写别人的)

Sub 导出PDF()

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Environ("userprofile") & "\desktop\" & Range("F6").Value & "_" & Range("A1") & "月份.pdf", Quality:=xlQualityStandard

End Sub

经测试,我这里没问题。
其中,Environ("userprofile") 是代表一个环境变量。它指向的位置默认为:
C:\Users\你的用户名。
如果你的这个系统变量不存在,则无法正确输出。或者系统不一样,也会发生这种情况。例如在XP下,可能这个就会出错。我用win7测试没毛病。
既然导出到桌面不行,你也可以导出到D盘,直接把这段代码改掉,改为:
Sub 导出PDF()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= "d:\" & Range("F6").Value & "_" & Range("A1") & "月份.pdf", Quality:=xlQualityStandard
End Sub
当然, 想导出到其他位置,可以把 d:\ 这段改成其他文件夹路径就可以了。例如你的电脑的桌面路径,也是可以的。
可以关注我哦,有关EXCEL的公式和VBA代码,可以向我提问。直接提问或者私信都可以哦。

------以下为问题补充。
需要补充的是,Range("F6")、range("a1")也是个变量,就是你单元格里的内容,如果A1没有内容, 或者内容有重复,可能会导致后边的覆盖前边的。这个也需要注意的。
还有一点,就是excel2007版的需要安装PDF导出的补丁包才可以导出的。excel2003不支持这个代码。2010版以后的就可以了。
如果还有问题,欢迎继续追问。可以把你的报错信息发上来看看,可能更容易帮你判断。
参考技术A 代码没有问题,我执行了没有报错,而且桌面上生成了文件。你报错的愿意可能是需要检查F6、A1的内容,如果里面日期会报错,因为日期的默认格式/不是合法的文件名,需要设置为文本并重新输入(建议检查A1) 参考技术B 猜测是你的文件目录有问题,系统桌面的目录,不是固定的,
可以试试以下代码,只是文件保存在Excel文件同一文件夹中。
Sub PDFlc()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\XXX1月份.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False
End Sub

RDLC - 后台代码直接导出Excel/PDF/Word格式

 1 //自动导出excel/pdf/word
 2 private void ResponseFile(int oType, string fileName)
 3 {
 4     string outType;
 5     if (oType == 0)
 6     {
 7         outType = "Excel";
 8     }
 9     else if (oType == 1)
10     {
11         outType = "Word";
12     }
13     else
14     {
15         outType = "Word";
16     }
17     try
18     {
19         Warning[] warnings;
20         string[] streamids;
21 
22         string mimeType;
23         string encoding;
24         string extension;
25 
26         byte[] bytes = ReportViewer1.LocalReport.Render(
27                 outType, null, out mimeType, out encoding, out extension,
28                 out streamids, out warnings);
29         Response.Clear();
30         Response.Buffer = true;
31         Response.ContentType = mimeType;
32         Response.AddHeader("content-disposition", "attachment;filename=" + fileName + "." + extension);
33         Response.BinaryWrite(bytes);
34 
35         Response.Flush(); 
36     } 
37     catch (Exception ex)
38     {
39         throw new Exception(ex.Message);
40     }
41 }

 

以上是关于EXCEL导出PDF代码?的主要内容,如果未能解决你的问题,请参考以下文章

怎么把excel导出为pdf

vb.net 导出PDF

数据表删除导出到 pdf 和 excel 的列

C#导出excel 不安装office excel情况下

为啥在本地可以导出Excel表,但是一上传服务器就不行了,导出的表里没有数据 求解答

使用 jquery 导出 PDF、CSV、Excel 表单数据表?