使用导出向导,可将 Access 数据库中的数据导出为可在 Excel 中读取的文件格式。 本文介绍如何准备数据并将它导出到 Excel,还提供了一些解决可能发生的常见问题的提示。
本文内容
将数据导出到 Excel:基础知识
当您将数据导出到 Excel 时,Access 将创建选定数据的副本,然后将复制的数据存储到可在 Excel 中打开的文件中。 如果您频繁将数据从 Access 复制到 Excel,则可保存该导出操作的详细信息以供将来使用,甚至可以将导出操作安排为按照指定间隔自动运行。
将数据导出到 Excel 的常见情况
-
您的部门或工作组在处理数据时既使用 Access 也使用 Excel。 您在 Access 数据库中存储数据,但使用 Excel 来分析数据和分发分析结果。 目前,您所在的团队在需要时可将数据导出到 Excel 中,但您希望此过程更加高效。
-
您长期以来一直使用 Access,但您的经理更喜欢在 Excel 中处理数据。 每隔固定的时间间隔,您就将数据复制到 Excel 中,但您希望自动执行此过程以节省自己的时间。
关于将数据导出到 Excel
-
Access 的“另存为”命令不包含将数据保存为 Excel 格式的选项。 若要将数据复制到 Excel,必须使用本文所述的导出功能,也可将 Access 数据复制到剪贴板,然后再粘贴到 Excel 电子表格中。
-
您可以导出表、查询、窗体或报表。 也可以导出多记录视图(如数据表)中的选定记录。
-
Microsoft Excel 包括从 Access 数据库导入数据的命令。 你可以使用此命令来代替 Access 中的导出命令;但是,Excel 的“导入”命令仅允许你导入表或查询。 有关详细信息,请参阅 Excel 帮助文章连接(导入)外部数据。
-
您不能将宏或模块导出到 Excel。 当您导出包含子窗体、子报表或子数据表的窗体、报表或数据表时,将只能导出主窗体、主报表或主数据表。 对于您要导出到 Excel 的每个子窗体、子报表和子数据表,您必须重复执行导出操作。
-
在一个导出操作中只能导出一个数据库对象。 但是,在完成各个导出操作后,可在 Excel 中合并多个工作表。
准备执行导出操作
执行导出过程前,最好查看您要导出的数据以确保其中不包含任何错误指示器或错误值。 如果存在任何错误,则尝试在将数据导出到 Excel 前解决它们。 否则,在导出操作过程中可能会出现问题,并可能在 Excel 工作表的单元格中插入空值。 有关在导出到 Excel 时可能会出现的问题的详细信息,请参阅解决值丢失和值错误问题部分。
如果源对象是一个表或查询,则需要决定在导出数据时是否保留格式。 此决定会影响结果工作簿的两个方面 — 导出的数据量和数据的显示格式。 下表说明了导出带格式和不带格式的数据的结果。
导出 |
源对象 |
字段和记录 |
格式 |
---|---|---|---|
不带格式 |
表或查询 注意: 导出窗体和报表时必须保留其格式。 |
导出基础对象中的所有字段和记录。 |
操作过程中将忽略“格式”属性设置。 对于查阅字段,仅会导出查阅 ID 值。 对于超链接字段,内容将被导出为以 displaytext#address# 格式显示链接的文本列。 |
带格式 |
表、查询、窗体或报表 |
仅导出当前视图或对象中显示的字段和记录。 将不导出筛选字段、数据表中的隐藏列以及未显示在窗体或报表上的字段。 |
该向导将使用“格式”属性设置。 对于查阅字段,查阅值将被导出。 对于超链接字段,值将被导出为超链接。 对于格式文本字段,将导出文本但不导出格式。 |
选择目标工作簿和文件格式。 注意,只能导出文件格式为旧版 *.xls 而不是新版 *.xlsx 的报表。
在导出操作过程中,Access 将提示您指定目标工作簿的名称。 下表总结了何时创建工作簿(如果尚不存在)以及何时覆盖它(如果已存在)。
如果目标工作簿 |
源对象 |
导出目标 |
那么 |
---|---|---|---|
不存在 |
表、查询、窗体或报表 |
带有格式或不带格式的数据 |
在导出操作过程中创建工作簿。 |
已存在 |
表或查询 |
不带格式的数据 |
不覆盖工作簿。 新工作表添加到工作簿中,并提供从其导出数据的对象的名称。 如果工作簿中已存在具有该名称的工作表,Access 将提示您替换相应工作表的内容或为新工作表指定另一个名称。 |
已存在 |
表、查询、窗体或报表 |
带格式的数据 |
使用导出的数据覆盖工作簿。 所有现有的工作表都将被删除,并创建与导出的对象同名的新工作表。 Excel 工作表中的数据将继承源对象的格式设置。 |
数据始终被添加到新工作表中。 您无法在任何现有工作表或命名区域中附加数据。
运行导出操作
-
如果目标 Excel 工作簿处于打开状态,则在继续操作前请将其关闭。
-
在源数据库的导航窗格中,选择您要导出的对象。
只导出部分数据
如果对象是表、查询或窗体,且您只希望导出部分数据,则在数据表视图中打开该对象,然后选择所需的记录。
按照下列步骤在数据表视图中打开窗体:
-
双击目标窗体将其打开。
-
右键单击该窗体,然后单击“数据表视图”。 如果此选项不可用:
-
单击“设计视图”。
-
按 F4 以显示“属性表”任务窗格。
-
从“属性表”顶部的下拉列表中选择“窗体”。
-
在“属性表”的“格式”选项卡上,将“允许数据表视图”属性设置为“是”。
-
在“设计”选项卡上的“视图”组中,单击“数据表视图”。
注意: 不能导出报表的一部分。 但是,您可选择或打开报表所基于的表或查询,然后导出该对象中的数据的一部分。
-
-
-
在“外部数据”选项卡上的“导出”组中,单击“Excel”。
-
在“导出 - Excel 电子表格”对话框中,查看为 Excel 工作簿建议的文件名(Access 使用源对象的名称)。 如果需要,可以更改该文件名。
-
在“文件格式”框中,选择所需的文件格式。
-
如果要导出表或查询,且希望导出带格式的数据,则选择“导出数据时包含格式和布局”。 有关详细信息,请参阅准备执行导出操作。
注意: 如果要导出窗体或报表,则此选项始终被选中但却不可用(呈灰色)。
-
若要在完成导出操作后查看目标 Excel 工作簿,则选中“完成导出操作后打开目标文件”复选框。
如果在开始导出操作之前,源对象已打开且您在视图中选定了一个或多个记录,则可选择“仅导出所选记录”。 若要导出视图中显示的所有记录,则保持此复选框为空。
注意: 如果未选定任何记录,则此复选框不可用(呈灰色)。
-
单击“确定”。
如果导出操作由于错误而失败,则 Access 将显示出一条消息,说明错误起因。 否则,Access 将导出数据,并根据在步骤 7 中所做的选择在 Excel 中打开目标工作簿。 然后,Access 将显示一个对话框,您可在该对话框中利用导出操作的详细信息来创建规格。
有关导出的其他需知内容
-
有关如何将导出的详细信息保存到可稍后使用的规范中,请参阅将导入或导出操作的详细信息另存为规范一文。
-
有关如何运行已保存的导出规范的信息,请参阅运行保存的导入或导出操作。
-
若要了解如何计划在特定时间运行规范,请参阅计划导入或导出操作一文。
-
有关如何更改规范名称,删除规范或更新规范中源文件名的相关信息,请参阅管理数据任务一文。
解决值丢失和值错误问题
下表说明了解决常见错误的各种不同方法。
提示: 如果发现只有几个值丢失,则可在 Excel 工作簿中修复它们。 否则,在 Access 数据库中修复源对象,然后重复导出操作。
问题 |
说明和解决方法 |
---|---|
计算字段 |
计算字段的结果将被导出,但执行计算的基础表达式不会被导出。 |
多值字段 |
支持多个值的字段将被导出为由分号 (;) 分隔的值列表。 |
图片、对象和附件 |
图形元素(如徽标、OLE 对象字段的内容和作为源数据的一部分的附件)不会被导出。 当您完成导出操作后,需手动将它们添加到工作表。 |
图表 |
当您导出包含 Microsoft Graph 对象的窗体或报表时,该图形对象不会被导出。 |
错误列中的数据 |
结果工作表中的空值有时会被本应当位于下一列中的数据所替代。 |
丢失日期值 |
早于 1900 年 1 月 1 日的日期值不会被导出。 工作表中的相应单元格将包含一个空值。 |
丢失表达式 |
用于计算值的表达式不会被导出到 Excel。 将只导出计算结果。 您可在完成导出操作后,手动将该公式添加到 Excel 工作表。 |
丢失子窗体、子报表和子数据表 |
当您导出窗体、报表或数据表时,将只导出主窗体、主报表或主数据表。 对于您要导出的每个子窗体、子报表和子数据表,您必须重复执行导出操作。 |
丢失列或列格式错误 |
如果结果工作表中没有任何列带有格式,则重复执行导出操作,确保在向导中选中“导出数据时包含格式和布局”复选框。 反过来,如果只有一些列的格式与源对象中的版本不同,则可在 Excel 中手动应用所需的格式。 在 Excel 中设置列格式
|
列中的“#”值 |
您可能会看到与窗体中的“是/否”字段相对应的列中出现值 #。 这可能是从导航窗格或窗体视图启动导出操作的结果。 若要解决此问题,请在导出数据前在数据表视图中打开窗体。 |
错误指示器或错误值 |
检查单元格中是否存在错误指示器(位于角落中的绿色三角形)或错误值(以 # 字符而不是相应数据开头的字符串)。 |