sql-将数据从SQL导出到Excel时报错

问题描述

将数据从SQL导出到Excel时报错 1C
将数据导出时,报错,说Application的Save方法无效。用OFFICE2013和WPS均报出相同错误,其他计算机上使用WPS可以成功导出数据,求大神指点。

解决方案

没有代码,怎么知道。
excel可以直接导入外部数据的,你录个宏看看哪错了

解决方案二:

vb.net 的DataGridView 数据导出到excel的例子,我们项目中一直使用的,可以看看有无帮助。    ''' <summary>''' dgv导出至Excel''' </summary>''' <param name=""Title"">表标题</param>'''  <param name=""pb"">pb</param>''' <returns></returns>''' <remarks></remarks>Shared Function dgvToExcel(ByVal Title As String ByVal dgv As DataGridView ByVal pb As ProgressBar) As Boolean    If dgv.Rows.Count = 0 Then Return False    Dim xlApp As New Excel.Application    Dim xlBook As Excel.Workbook    Dim xlSheet As Excel.Worksheet    Dim rowIndex colIndex As Integer    rowIndex = 2    colIndex = 0    xlBook = xlApp.Workbooks().Add    xlSheet = xlBook.Worksheets(""sheet1"")    xlSheet.Cells.NumberFormatLocal = ""@""    Dim Table As DataTable = dgv.DataSource    If Table Is Nothing Then   '说明此表为无源的数据表        Table = GetDgvToTable(dgv)    End If    '将所得到的表的列名赋值给单元格     Dim Col As DataColumn    Dim col1 As DataColumn    Dim Row As DataRow    xlApp.Cells(1 1) = Title    'exsheet.range(cells cells).merge()    xlApp.Range(xlApp.Cells(1 1) xlApp.Cells(1 Table.Columns.Count)).Merge()    xlApp.Cells(1 1).HorizontalAlignment = 3    For Each Col In Table.Columns        colIndex = colIndex + 1        xlApp.Cells(2 colIndex) = Col.ColumnName    Next    '得到的表所有行( 赋值给单元格)    pb.Maximum = Table.Rows.Count    pb.Value = 0    For Each Row In Table.Rows        rowIndex = rowIndex + 1        colIndex = 0        For Each col1 In Table.Columns            colIndex = colIndex + 1            xlApp.Cells(rowIndex colIndex) = Row(col1.ColumnName)            Application.DoEvents()        Next        pb.Value += 1        Application.DoEvents()    Next    With xlSheet        .Range(.Cells(1 1) .Cells(1 colIndex)).Font.Name = ""黑体""        '设标题为黑体字         .Range(.Cells(1 1) .Cells(1 colIndex)).Font.Bold = True        '标题字体加粗         .Range(.Cells(1 1) .Cells(rowIndex colIndex)).Borders.LineStyle = 1        '设表格边框样式         '.Range(.Cells(1 1) .Cells(rowIndex colIndex)).NumberFormatLocal = ""@""        '设置单元格为文本格式    End With    With xlSheet.PageSetup        .LeftHeader = """" & Chr(10) & ""&""""楷体_GB2312常规""""&10公司名称:"" '& Gsmc         .CenterHeader = ""&""""楷体_GB2312常规""""&""""宋体常规"""""" & Chr(10) & ""&""""楷体_GB2312常规""""&10日 期:""        .RightHeader = """" & Chr(10) & ""&""""楷体_GB2312常规""""&10单位:""        .LeftFooter = ""&""""楷体_GB2312常规""""&10制表人:""        .CenterFooter = ""&""""楷体_GB2312常规""""&10制表日期:""        .RightFooter = ""&""""楷体_GB2312常规""""&10第&P页 共&N页""    End With    xlApp.Visible = TrueEnd Function

解决方案三:
C#导出到Excel:
引用 ClosedXML.dll , 代码非常简单:

        DataTable dt = SqlHelper.GetDataTableByProc(proc spArr);        dt.TableName = ""Sheet1"";        var wb = new ClosedXML.Excel.XLWorkbook();        wb.Worksheets.Add(dt);        wb.SaveAs(filePath);

用SQLServer导出Excel还可以直接用它自带的导入导出向导。


时间: 2024-11-18 06:56:09

sql-将数据从SQL导出到Excel时报错的相关文章

oracle10g-利用sqoop把数据从Oracle导出到hive报错

问题描述 利用sqoop把数据从Oracle导出到hive报错 bash-4.1$ sqoop import --connect jdbc:oracle:thin:@192.168.1.169:1521:orcl --username HADOOP --password hadoop2015 --table CALC_UPAY_DATE_HADOOP_HDFS --split-by UPAYID --hive-import Warning: /usr/lib/sqoop/../accumulo

Sql server2005数据导入和导出示例

在SQL Server数据库之间进行数据导入导出 (1).使用SELECT INTO导出数据 在SQL Server中使用最广泛的就是通过SELECT INTO语句导出数据,SELECT INTO语句同时具备两个功能:根据SELECT后跟的字段以及INTO后面跟的表名建立空表(如果SELECT后是*, 空表的结构和FROM所指的表的结构相同):将SELECT查出的数据插入到这个空表中.在使用SELECT INTO语句时,INTO后跟的表必须在数据库不存在,否则出错,下面是一个使用SELECT I

SQL Server2005打开数据表中的XML内容时报错的解决办法_mssql2005

从SQL Server2005开始提供了一种新的数据类型XML type,它允许用户将数据以XML文件的格式直接存储到数据表中.结合在ASP.NET中使用Linq to Sql,我们可以非常方便地将XML文件存储到SQL Server数据库中.但是在默认情况下,如果你存储的XML文件比较大(超过2MB),在SQL Server管理器中不能直接点击查看XML内容而报以下错误提示: 如何解决该问题呢?很简单,其实错误提示中已经描述地很清楚了,在SQL Server Management Studio

关于SQL Server打开数据表中的XML内容时报错的解决办法

从SQL Server2005开始提供了一种新的数据类型XML type,它允许用户将数据以XML文件的格式直接存储到数据表中.结合在ASP.NET中使用Linq to Sql,我们可以非常方便地将XML文件存储到SQL Server数据库中.但是在默认情况下,如果你存储的XML文件比较大(超过2MB),在SQL Server管理器中不能直接点击查看XML内容而报以下错误提示: 如何解决该问题呢?很简单,其实错误提示中已经描述地很清楚了,在SQL Server Management Studio

用Sql生成数据插入Sql脚本

CREATE PROCEDURE dbo.UspOutputData @tablename sysname AS declare @column varchar(1000) declare @columndata varchar(1000) declare @sql varchar(4000) declare @xtype tinyint declare @name sysname declare @objectId int declare @objectname sysname declare

用access处理数据后导出到excel

  将数据导入到access中,可通过文本文件导入,导入时根据数据创建表,命名表的字段名. 创建表成功后,创建->查询设计向导->右键选择sql视图->可输入sql语句 ,执行,保存结果,导出到excel. 截两张图示意下:

使用XL C/C++编译器中提供的数据访问SQL工具

IBM 用于 z/OS 的 XL C++/C++ 编译器支持在 C/C++ 程序中使用嵌入式 SQL 语句.本文假设您使用了 XL C/C++ DB2 协处理器.文中会描述与 z/OS 上的嵌入式 SQL XL C/C++ 程序中的 SQL 数据交互的各种方法. 使用主变量从 SQL 获取数据 从 SQL 表获取数据的最基本方法是使用主变量(host variables).主变量允许 C/C++ 程序与 DB2 进行通信. 示例:主变量 备注:本文中的所有示例都会引用清单 1 中的学生表. 清单

sql server带列名导出至excel

--sql语句就用下面的存储过程 /*--数据导出Excel 导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件,如果文件不存在,将自动创建文件,如果表不存在,将自动创建表基于通用性考虑,仅支持导出标准数据类型--邹建 2003.10--*/ /*--调用示例 p_exporttb @sqlstr='select * from 地区资料',@path='c:\',@fname='aa.xls',@sheetname='地区资料'--*/if exists (select * f

SQL Server数据导入导出技术概述与比较

当我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验.净化和转换时,将会面临很大的挑战.幸好SQL Server为我们提供了强大.丰富的数据导入导出功能,并且在导入导出的同时可以对数据进行灵活的处理. 在SQL Server中主要有三种方式导入导出数据:使用Transact-SQL对数据进行处理:调用命令行工具bcp处理数据:使用数据转换服务(DTS)对数据进行处理.这三种方法各有其特点,下面就它们的主要特点进行比较. 一.使用方式的比