用SQL Server生成Excel作为附件发送的问题

jiang5311 2017-03-16 09:39:04

EXEC master..xp_cmdshell 'bcp "select * from dbo.TestTable" queryout E:\Reports\myReport.xls -c -q -S"server" -U"sa" -P"sa"'



在SQL Server中用语句生成一个Excel,然后保存到文件夹中,最后用DBmail自动发送的。
在电脑上,它会提示文件不安全,点击yes后才可以打开,可是在手机邮件上直接不提示。
怎么解决这个问题?谢谢啦!

the file format and extension don't match. The file could be corrupted or unsafe. Unless you trust its source, don't open it. Do you want to open it anyway?
...全文
650 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiang5311 2017-03-20
  • 打赏
  • 举报
回复
引用 12 楼 Tiger_Zhao 的回复:
连买不了包子的分都不给
我也想给啊,可是系统提示我的分值不够了,好久不上CSDN了,要怎么样才能转换分?
Tiger_Zhao 2017-03-20
  • 打赏
  • 举报
回复
连买不了包子的分都不给
jiang5311 2017-03-19
  • 打赏
  • 举报
回复
使用BCP命令导出和导入数据常用的参数如下 bcp {[[database_name.][schema_name]].{table_name | view_name} | "query"} {in | out | queryout} 数据文件 [-c 字符类型] | [-w 宽字符类型] [-t 字段终止符] [-r 行终止符] [-i 输入文件] [-o 输出文件] [-S 服务器名称] [-U 用户名] [-P 密码] [-T 可信连接] [-d 数据库名称] [-k 保留NULL值] -c 使用char类型做为存储类型,没有前缀且以"\t"做为字段分割符,以"\n"做为行分割符。 -w 使用Unicode字符集拷贝数据,在数据库中,需要将Table Column设置为 nchar或nvarchar存储类型。如果 -c 和 -w 同时指定,那么 -w 将覆盖 -c。 -t field_term 指定column分割符,默认是"\t"。 -r row_term 指定row分割符,默认是"\n"。 -S server_name[ \instance_name] 指定要连接的SQL Server服务器的实例,如果未指定此选项,BCP连接本机的SQL Server默认实例。如果要连接某台机器上的默认实例,只需要指定机器名即可。 -U login_id 指定连接SQL Sever的用户名。 -P password 指定连接SQL Server的用户名密码。 -T 指定BCP使用信任连接登录SQL Server。如果未指定-T,必须指定-U和-P。 -d 指定数据库名称 -k 指定空列使用null值插入,而不是这列的默认值。 --导出,分隔符是“分隔符” EXEC master..xp_cmdshell 'bcp "select * From log.dbo.[table]" queryout E:\out.txt -c -t 分隔符' --导入,分隔符是“分隔符” EXEC master..xp_cmdshell 'bcp log.dbo.[20] in E:\out.txt -c -t 分隔符' 感谢大家的回复,这个问题的角度让我给了我解决方案! 用上面的加分隔符的办法,已经搞定,再次感谢!结贴!
Tiger_Zhao 2017-03-17
  • 打赏
  • 举报
回复
参数 -c 是TSV格式,CSV格式需要用到格式文件。
比如我数据库MyTest有个table1要导出,
1)下面的命令生成格式文件
EXEC master..xp_cmdshell 'bcp mytest.dbo.table1 format nul -c -f X:\table1.fmt -T'

生成的格式文件table1.fmt内容如下
9.0
2
1 SQLCHAR 0 12 "\t" 1 id ""
2 SQLCHAR 0 12 "\r\n" 2 x ""

2)改为逗号分隔
9.0
2
1 SQLCHAR 0 12 "," 1 id ""
2 SQLCHAR 0 12 "\r\n" 2 x ""

3)以后就可以用下面的命令导出CSV了
EXEC master..xp_cmdshell 'bcp mytest.dbo.table1 out X:\table1.csv -f X:\table1.fmt -T'

shoppo0505 2017-03-17
  • 打赏
  • 举报
回复
引用 8 楼 jiang5311 的回复:
如果生成csv,手机邮件里面可以看。 EXEC master..xp_cmdshell 'bcp "select * from dbo.TestTable" queryout E:\Reports\myReport.csv -c -q -S"server" -U"sa" -P"sa"' 但是,电脑上面看就变成这样了... 有没有两全的解决办法?csv带分隔符,或者xls文件不提示,就都可以在手机和电脑上看附件了。
你生成csv,起个xls后缀, 在电脑上的话,在环境设置中,修改分割符就能展示表格了(分列). 默认是分号,你这个文件中,分隔符都没有加,怎么都不可能分列显示。
Tiger_Zhao 2017-03-16
  • 打赏
  • 举报
回复
手机上没装Office,或者装的Office版本太低。
jiang5311 2017-03-16
  • 打赏
  • 举报
回复
引用 1 楼 shoppo0505 的回复:
什么版本的office?excel是xls还是xlsx?
目前生成文件是在SQL Server端生成的,Server端没有安装Office,我们自己是在office2013中打开的。 另外还有手机邮件,手机邮件是无法打开的。
shoppo0505 2017-03-16
  • 打赏
  • 举报
回复
什么版本的office?excel是xls还是xlsx?
jiang5311 2017-03-16
  • 打赏
  • 举报
回复


如果生成csv,手机邮件里面可以看。
EXEC master..xp_cmdshell 'bcp "select * from dbo.TestTable" queryout E:\Reports\myReport.csv -c -q -S"server" -U"sa" -P"sa"'

但是,电脑上面看就变成这样了...
有没有两全的解决办法?csv带分隔符,或者xls文件不提示,就都可以在手机和电脑上看附件了。
jiang5311 2017-03-16
  • 打赏
  • 举报
回复
引用 5 楼 Tiger_Zhao 的回复:
你导出的实际是CSV? 那你干吗命名为.xls后缀?——误导啊! 猜想原因 1)估计里面有些数据不是很符合csv标准,用帖子《关于bcp导出数据,数据中带有换行的问题》中的方法处理一下。 2)数据里面有类似脚本/嵌入对象之类的内容,被识别为不安全。关闭杀毒软件试试。
这位朋友说的很有道理,我尝试了一下,不生成xls,生成csv,打开的时候,就不报提醒了,手机邮件里面也可以正常打开! 可是,在电脑上看,中间没有分隔符,难道只能在手机或者电脑上取一样?
唐诗三百首 2017-03-16
  • 打赏
  • 举报
回复
没有捷径, 建议用前端程序实现, 查出数据到DataTable-->生成Excel-文件->连接邮件服务器-->发送邮件.
Tiger_Zhao 2017-03-16
  • 打赏
  • 举报
回复
你导出的实际是CSV?
那你干吗命名为.xls后缀?——误导啊!

猜想原因
1)估计里面有些数据不是很符合csv标准,用帖子《关于bcp导出数据,数据中带有换行的问题》中的方法处理一下。
2)数据里面有类似脚本/嵌入对象之类的内容,被识别为不安全。关闭杀毒软件试试。
jiang5311 2017-03-16
  • 打赏
  • 举报
回复
引用 3 楼 Tiger_Zhao 的回复:
手机上没装Office,或者装的Office版本太低。
不是的,其他的邮件含有excel附件的都是可以打开的,只有这个不行。
易点内容管理系统 DianCMS简介 易点内容管理系统(DianCMS)是基于微软.NET Framework 2.0、AJAX1. 0技术,采用Microsoft Access/SQL Server 2000/2005/2008存储过程进行多层架构开发的内容管理系统。其功能设计主要面向中大型企业、各个行业、事业单位以及政府机关等复杂功能站点。系统已建立文章系统、图片系统、下载系统、个人求职、企业招聘、房产系统、音乐系统、视频系统、网上商店。使用自定义模型、自定义字段、自定义表单、自定义录入界面、会员系统等功能,您还可以轻松、灵活的建立适合自身需求的任何系统功能,最大化满足每个用户任何时候的不同需求。 易点内容管理系统 DianCMS v6.4.0 SQL版 更新日志 【增加】vsfree预编译。耗时比较长的sql查询,可以先进行预编译,提高网站访问速度。 【增加】单图片简洁模式也可以查看缩略图 【增加】随机数字段,在指定范围内随机生成 【增加】多模型数据调用,可以在一个列表中调用多个模型的数据。 【增加】单图片多小图时,截取小图的方式由之前的等比例缩小后,从左上角开始截图指定大小图片。再增加等比例缩小后,保留完整性,不足部分填充空白。 【增加】字段类型为表单类型时,增加文件上传和多行文本框 【增加】为ckeditor编辑器增加多图上传按钮 【增加】采集时,字段内容为空时,可以不采集此条内容。 【修复】百度编辑器上传漏洞。 【增加】栏目自由字段,由之前的5个字段增加到10个字段,多方位满足大家的需求。 【调整】用户/管理员登录时,密码加密后提交。 【开放】表单内容页。使用表单时,也可以在前台调用其内容了。(以前商业版功能,现免费开放) 易点内容管理系统 DianCMS程序特点如下: 1、自定义内容模型、表单、用户注册模型 2、自定义内容录入界面、表单录入界面、用户注册界面 3、自定义搜索及搜索结果显示方式 4、自定义Sitemap 5、超强字段管理功能:单行文本、多行文本、单选项、多选项、二级联动、*联动、附件等等 6、超强表单功能管理 7、普通标签任意条件组合调用 8、完善的单页管理管理 9、首次引用一条数据属于多个栏目功能 10、全站录入界面统一生成aspx文件,方便管理和扩展 11、全站使用SEO优化设置 12、后台支持选项卡功能,可记录最近Cao作的8个功能连接 13、会员系统、会员组权限设置 14、管理员组权限设置 15、管理员、用户日志记录 16、多种生成内容方式 17、Excel完美导入 18、超强采集系统:采用多线程设计可暂停、继续、终止采集任务 19、灵活的VS自由标签 20、终极列表内置24种分页效果,满足不同网站风格 21、集成文章系统、下载系统.使用导入模型功能,可增加多种系统功能 22、数据字典内置多种常用类别:*地区、个人爱好、评分等级等 23、站内链接功能 24、特殊字符过滤功能 25、Email邮件单发、群发 26、备份和压缩数据库 27、录入信息使用正则表达式验证 28、站点短消息系统 29、上传文件管理 30、任意广告制作系统 31、URL伪静态功能:采用微软URLRewriter核心架构 32、评论系统 33、后台5种风格主题供选择 34、VS Free标签——任意表数据调用 35、关键字管理 36、完善的会员系统:用户投稿、好友分组、短消息管理、推广奖励、备忘录自动提醒等 初次使用:http://您的站点/install/default.aspx 按安装向导一步一步操作 后台默认地址:http://您的站点/admin/default.aspx 易点内容管理系统 DianCMS页面展示   相关阅读 同类推荐:CMS文章
本课程根据讲师十多年在世界500强外企的生产环境中的SQL Serer数据库管理和项目实施经验倾心打造。课程系统性强,知识体系完整,覆盖90%以上的企业环境下SQL Server高可用场景,课程中不仅演示详细的操作步骤,更加突出最常见的故障和问题,让学员少走“弯路”,不只是让学员学会“操作”更能让学员“操作”的规范,满满的干货分享,一些课程资料(架构图、部署规划表格等)不仅可以帮助学员掌握技能,也可以作为学员在企业生产环境中实施SQL Server高可用的配置文档、操作手册等。课程的实验环境介绍:1)全部基于微软域环境和企业版SQL Server AOAG - 95%以上的企业环境都是在域环境中,不介绍非域环境和标准版的SQL Server高可用性组,这的配置在企业中较罕见,没有实践意义,不浪费学员时间。2)相应域环境已提前部署和配置好 - 学员导入虚拟机即可开始实验,无需从零开始搭建域环境,所有实验中SQL Server均已加域,直入主题,节省大量时间。3)最新的Windows Server故障转移集群(WS2016、WS2019)和最新版本的SQL ServerSQL2017、SQL2019) -  WS2016-SQL2017与WS2019-SQL2019是目前大多数企业SQL Server高可用的主要平台,基于微软产品生命周期现在一些企业也在讲早期的AOAG向这两个版本迁移,掌握这两种组合不仅让学员学会,更能学有所用。本课程为后续SQL Server进阶课程铺垫,是通向SQL Server DBA 专家的必经之路,讲师每周答疑两次。所有课程资料包括:课程PPT、架构图、部署规划表格、各类脚本学员均可下载。     
《风越代码生成器 [FireCode Creator]》是一款采用.Net FrameWork2.0框架、基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索功能。默认提供asp、aspx WEB程序、.net普通三层框架程序、.net Windows程序,多种代码框架及多个界面设计模板,均可任意修改管理。通过自定义生成程序的界面风格与输出代码,用户可将其扩展为ASPX/ASP/PHP/JSP等各种程序的代码生成器。内置的.net代码框架,能建立C#语言的.net解决方案,可在VS2005中直接编辑,既能帮助.net初学者快速入门,更可最大限度提高.net程序员的代码编写效率。 01、支持生成的ASPX/ASP/PHP/JSP等页面在本机自动发布、调试(需安装IIS或对应WEB服务器) 02、支持Microsoft SQL Server、Microsoft Access、Oracle、MySqlExcel、FoxPro、FoxBase、Text等数据库连接 03、支持从数据表、视图(Access为查询)中读取数据字段 04、支持通过数据表中的组合主键传递参数 05、支持CSS统一设置页面风格 06、支持多种控件输入方式: 文本框 文本域 UBB文本框(支持UBB文本输入) 密码框 隐藏域 日期选择 单选框 复选框 下拉框 多选列表 单选列表 批量上载 上载文件 上载到库 07、支持多种信息显示方式: 显示文字 链接文件 文本框 文本域 显示图片 背景声音 视频播放 显示flash 08、支持检测提交字符的最小、最大输入长度、是否空值/唯一值、文本类型:★ 不检测 非特殊字符 仅单词字符 仅单词字符空格 仅26个字母 仅中文字符 仅允许整数 仅允许小数 仅日期/时间 仅日期+时间 仅日期 仅时间 仅允许邮箱 仅允许网址 仅允许IP 仅身份证号 仅国内电话 仅国内手机 09、支持对用户输入内容进行服务器端与客户端JS双重验证,有效防止SQL注入 ★ 10、支持自动生成多组多级的级联下拉框功能,快速建立如:省、市、县/公司、部门、小组等形式下拉框 ★ 11、支持表单提交超过100KB的文本数据 ★ 12、支持多文件上载、修改、删除记录时同步删除文件 13、支持控件名加密,使输入控件的名称与字段名不同,防止他人从客户端HTML中猜解 ★ 14、支持列表、搜索页面对数据记录进行实时排序、修改、批量删除等功能 15、支持表头/单独表格搜索两种布局方式 16、提供多种灵活翻页方案,用户可设置每页记录条数、上/下页、前/后N页、输入数字跳转到指定页面等,提高海量数据翻页速度 17、提供丰富的建站常用VB、JS函数库 ★ 18、更多扩展功能: 添加、修改页面在保存信息前进行预览功能 添加、修改页面提交后自动跳转并刷新列表页 字段描述批量格式化,可从字段名、描述生成,加强英文字符处理 列表、搜索页面隔行颜色、点击变色设置 根据数据库字段允许空值状态自动设置输入检测代码 页面皮肤模板设置,根据网页模板快速生成页面 ★ 设置指定字段在编辑信息时为只读状态 字段需要二次输入(如输入两次密码,以验证其正确性) ★ 在列表中直接批量编辑字段值,便于管理员维护 列表、搜索文件自动读取链接数据表值的实际信息 发送邮件功能,设置字段为邮件对应信息,可发送附件 ★ (繁、简、英)单语言版本 ★ 多语言页面实时翻译功能(默认:繁、简、英,可增加其它语言) ★ 多语言编码支持(GB2312/UTF8) ★ 生成提交校验码图片 ★ 搜索、列表文件以详细列表页(留言板风格)显示 生成权限,限制用户对指定页面的添加、删除、编辑权 将查询结果导出为CSV、HTML、EXCEL文件 ★ 生成不同选择字段的SQL语句 生成数据库字典 ★ 模板代码生成器,可自定义模板、变量生成代码 ★
风越.net代码生成器 [FireCode Creator] 是一款采用.Net FrameWork2.0框架、基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索功能。默认提供asp、aspx WEB程序、.net普通三层框架程序、.net Windows程序,多种代码框架及多个界面设计模板,均可任意修改管理。通过自定义生成程序的界面风格与输出代码,用户可将其扩展为ASPX/ASP/PHP/JSP等各种程序的代码生成器。内置的.net代码框架,能建立C#语言的.net解决方案,可在VS2005中直接编辑,既能帮助.net初学者快速入门,更可最大限度提高.net程序员的代码编写效率。 01、支持生成的ASPX/ASP/PHP/JSP等页面在本机自动发布、调试(需安装IIS或对应WEB服务器) 02、支持Microsoft SQL Server、Microsoft Access、Oracle、MySqlExcel、FoxPro、FoxBase、Text等数据库连接 03、支持从数据表、视图(Access为查询)中读取数据字段 04、支持通过数据表中的组合主键传递参数 05、支持CSS统一设置页面风格 06、支持多种控件输入方式: 文本框 文本域 UBB文本框(支持UBB文本输入) 密码框 隐藏域 日期选择 单选框 复选框 下拉框 多选列表 单选列表 批量上载 上载文件 上载到库 07、支持多种信息显示方式: 显示文字 链接文件 文本框 文本域 显示图片 背景声音 视频播放 显示flash 08、支持检测提交字符的最小、最大输入长度、是否空值/唯一值、文本类型:★ 不检测 非特殊字符 仅单词字符 仅单词字符空格 仅26个字母 仅中文字符 仅允许整数 仅允许小数 仅日期/时间 仅日期+时间 仅日期 仅时间 仅允许邮箱 仅允许网址 仅允许IP 仅身份证号 仅国内电话 仅国内手机 09、支持对用户输入内容进行服务器端与客户端JS双重验证,有效防止SQL注入 ★ 10、支持自动生成多组多级的级联下拉框功能,快速建立如:省、市、县/公司、部门、小组等形式下拉框 ★ 11、支持表单提交超过100KB的文本数据 ★ 12、支持多文件上载、修改、删除记录时同步删除文件 13、支持控件名加密,使输入控件的名称与字段名不同,防止他人从客户端HTML中猜解 ★ 14、支持列表、搜索页面对数据记录进行实时排序、修改、批量删除等功能 15、支持表头/单独表格搜索两种布局方式 16、提供多种灵活翻页方案,用户可设置每页记录条数、上/下页、前/后N页、输入数字跳转到指定页面等,提高海量数据翻页速度 17、提供丰富的建站常用VB、JS函数库 ★ 18、更多扩展功能: 添加、修改页面在保存信息前进行预览功能 添加、修改页面提交后自动跳转并刷新列表页 字段描述批量格式化,可从字段名、描述生成,加强英文字符处理 列表、搜索页面隔行颜色、点击变色设置 根据数据库字段允许空值状态自动设置输入检测代码 页面皮肤模板设置,根据网页模板快速生成页面 ★ 设置指定字段在编辑信息时为只读状态 字段需要二次输入(如输入两次密码,以验证其正确性) ★ 在列表中直接批量编辑字段值,便于管理员维护 列表、搜索文件自动读取链接数据表值的实际信息 发送邮件功能,设置字段为邮件对应信息,可发送附件 ★ (繁、简、英)单语言版本 ★ 多语言页面实时翻译功能(默认:繁、简、英,可增加其它语言) ★ 多语言编码支持(GB2312/UTF8) ★ 生成提交校验码图片 ★ 搜索、列表文件以详细列表页(留言板风格)显示 生成权限,限制用户对指定页面的添加、删除、编辑权 将查询结果导出为CSV、HTML、EXCEL文件 ★ 生成不同选择字段的SQL语句 生成数据库字典 ★ 模板代码生成器,可自定义模板、变量生成代码 ★

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧