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代码?的主要内容,如果未能解决你的问题,请参考以下文章