精华内容
下载资源
问答
  • js 实现纯前端将数据导出excel两种方式,亲测有效

    万次阅读 多人点赞 2018-05-23 14:33:27
    由于项目需要,需要在不调用后台接口的情况下,将json数据导出到excel表格,参考了好多资料以及很多大佬写的博客终于实现,兼容chrome没问题,其他还没有测试过,这边介绍两种实现方式,并附上代码和gif动图,博主...

    方法一

    将table标签,包括tr、td等对json数据进行拼接,将table输出到表格上实现,这种方法的弊端在于输出的是伪excel,虽说生成xls为后缀的文件,但文件形式上还是html,代码如下

    <html>
    <head>
        <p style="font-size: 20px;color: red;">使用table标签方式将json导出xls文件</p>
        <button onclick='tableToExcel()'>导出</button>
    </head>
    <body>
        <script>  
        const tableToExcel = () => {
            // 要导出的json数据
            const jsonData = [
                {
                    name:'路人甲',
                    phone:'123456',
                    email:'123@123456.com'
                },
                {
                    name:'炮灰乙',
                    phone:'123456',
                    email:'123@123456.com'
                },
                {
                    name:'土匪丙',
                    phone:'123456',
                    email:'123@123456.com'
                },
                {
            
    展开全文
  • 在web开发中,有一个经典的功能,就是数据的导入导出。特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作。而数据导出的格式一般是EXCEL或者PDF,我这里就用两篇...

            在web开发中,有一个经典的功能,就是数据的导入导出。特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作。而数据导出的格式一般是EXCEL或者PDF,我这里就用两篇文章分别给大家介绍下。(注意,我们这里说的数据导出可不是数据库中的数据导出!么误会啦^_^)

             呵呵,首先我们来导出EXCEL格式的文件吧。现在主流的操作Excel文件的开源工具有很多,用得比较多的就是Apache的POI及JExcelAPI。这里我们用Apache POI!我们先去Apache的大本营下载POI的jar包:http://poi.apache.org/ ,我这里使用的是3.0.2版本。

            将3个jar包导入到classpath下,什么?忘了怎么导包?不会吧!好,我们来写一个导出Excel的实用类(所谓实用,是指基本不用怎么修改就可以在实际项目中直接使用的!)。我一直强调做类也好,做方法也好,一定要通用性和灵活性强。下面这个类就算基本贯彻了我的这种思想。那么,熟悉许老师风格的人应该知道,这时候该要甩出一长串代码了。没错,大伙请看:

    public class Student {
    	private long id;
    	private String name;
    	private int age;
    	private boolean sex;
    	private Date birthday;
    	// Constructor, Getter and Setter...
    }
    public class Book {
    	private int bookId;
    	private String name;
    	private String author;
    	private float price;
    	private String isbn;
    	private String pubName;
    	private byte[] preface;
    	// Constructor, Getter and Setter...
    }

    上面这两个类一目了然,就是两个简单的javabean风格的类。再看下面真正的重点类:

    public class ExportExcel<T> {
    	public void exportExcel(Collection<T> dataset, OutputStream out) {
    		exportExcel("测试POI导出EXCEL文档", null, dataset, out, "yyyy-MM-dd");
    	}
    
    	public void exportExcel(String[] headers, Collection<T> dataset,
    			OutputStream out) {
    		exportExcel("测试POI导出EXCEL文档", headers, dataset, out, "yyyy-MM-dd");
    	}
    
    	public void exportExcel(String[] headers, Collection<T> dataset,
    			OutputStream out, String pattern) {
    		exportExcel("测试POI导出EXCEL文档", headers, dataset, out, pattern);
    	}
    
    	/**
    	 * 这是一个通用的方法,利用了JAVA的反射机制,可以将放置在JAVA集合中并且符号一定条件的数据以EXCEL 的形式输出到指定IO设备上
    	 *
    	 * @param title
    	 *            表格标题名
    	 * @param headers
    	 *            表格属性列名数组
    	 * @param dataset
    	 *            需要显示的数据集合,集合中一定要放置符合javabean风格的类的对象。此方法支持的
    	 *            javabean属性的数据类型有基本数据类型及String,Date,byte[](图片数据)
    	 * @param out
    	 *            与输出设备关联的流对象,可以将EXCEL文档导出到本地文件或者网络中
    	 * @param pattern
    	 *            如果有时间数据,设定输出格式。默认为"yyy-MM-dd"
    	 */
    	@SuppressWarnings("unchecked")
    	public void exportExcel(String title, String[] headers,
    			Collection<T> dataset, OutputStream out, String pattern) {
    		// 声明一个工作薄
    		HSSFWorkbook workbook = new HSSFWorkbook();
    		// 生成一个表格
    		HSSFSheet sheet = workbook.createSheet(title);
    		// 设置表格默认列宽度为15个字节
    		sheet.setDefaultColumnWidth((short) 15);
    		// 生成一个样式
    		HSSFCellStyle style = workbook.createCellStyle();
    		// 设置这些样式
    		style.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
    		style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
    		style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
    		style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
    		style.setBorderRight(HSSFCellStyle.BORDER_THIN);
    		style.setBorderTop(HSSFCellStyle.BORDER_THIN);
    		style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
    		// 生成一个字体
    		HSSFFont font = workbook.createFont();
    		font.setColor(HSSFColor.VIOLET.index);
    		font.setFontHeightInPoints((short) 12);
    		font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
    		// 把字体应用到当前的样式
    		style.setFont(font);
    		// 生成并设置另一个样式
    		HSSFCellStyle style2 = workbook.createCellStyle();
    		style2.setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index);
    		style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
    		style2.setBorderBottom(HSSFCellStyle.BORDER_THIN);
    		style2.setBorderLeft(HSSFCellStyle.BORDER_THIN);
    		style2.setBorderRight(HSSFCellStyle.BORDER_THIN);
    		style2.setBorderTop(HSSFCellStyle.BORDER_THIN);
    		style2.setAlignment(HSSFCellStyle.ALIGN_CENTER);
    		style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
    		// 生成另一个字体
    		HSSFFont font2 = workbook.createFont();
    		font2.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
    		// 把字体应用到当前的样式
    		style2.setFont(font2);
    		// 声明一个画图的顶级管理器
    		HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
    		// 定义注释的大小和位置,详见文档
    		HSSFComment comment = patriarch.createComment(new HSSFClientAnchor(
    				0, 0, 0, 0, (short) 4, 2, (short) 6, 5));
    		// 设置注释内容
    		comment.setString(new HSSFRichTextString("可以在POI中添加注释!"));
    		// 设置注释作者,当鼠标移动到单元格上是可以在状态栏中看到该内容.
    		comment.setAuthor("leno");
    		// 产生表格标题行
    		HSSFRow row = sheet.createRow(0);
    		for (short i = 0; i < headers.length; i++) {
    			HSSFCell cell = row.createCell(i);
    			cell.setCellStyle(style);
    			HSSFRichTextString text = new HSSFRichTextString(headers[i]);
    			cell.setCellValue(text);
    		}
    		// 遍历集合数据,产生数据行
    		Iterator<T> it = dataset.iterator();
    		int index = 0;
    		while (it.hasNext()) {
    			index++;
    			row = sheet.createRow(index);
    			T t = (T) it.next();
    			// 利用反射,根据javabean属性的先后顺序,动态调用getXxx()方法得到属性值
    			Field[] fields = t.getClass().getDeclaredFields();
    			for (short i = 0; i < fields.length; i++) {
    				HSSFCell cell = row.createCell(i);
    				cell.setCellStyle(style2);
    				Field field = fields[i];
    				String fieldName = field.getName();
    				String getMethodName = "get"
    						+ fieldName.substring(0, 1).toUpperCase()
    						+ fieldName.substring(1);
    				try {
    					Class tCls = t.getClass();
    					Method getMethod = tCls.getMethod(getMethodName,
    							new Class[] {});
    					Object value = getMethod.invoke(t, new Object[] {});
    					// 判断值的类型后进行强制类型转换
    					String textValue = null;
    					// if (value instanceof Integer) {
    					// int intValue = (Integer) value;
    					// cell.setCellValue(intValue);
    					// } else if (value instanceof Float) {
    					// float fValue = (Float) value;
    					// textValue = new HSSFRichTextString(
    					// String.valueOf(fValue));
    					// cell.setCellValue(textValue);
    					// } else if (value instanceof Double) {
    					// double dValue = (Double) value;
    					// textValue = new HSSFRichTextString(
    					// String.valueOf(dValue));
    					// cell.setCellValue(textValue);
    					// } else if (value instanceof Long) {
    					// long longValue = (Long) value;
    					// cell.setCellValue(longValue);
    					// }
    					if (value instanceof Boolean) {
    						boolean bValue = (Boolean) value;
    						textValue = "男";
    						if (!bValue) {
    							textValue = "女";
    						}
    					} else if (value instanceof Date) {
    						Date date = (Date) value;
    						SimpleDateFormat sdf = new SimpleDateFormat(pattern);
    						textValue = sdf.format(date);
    					} else if (value instanceof byte[]) {
    						// 有图片时,设置行高为60px;
    						row.setHeightInPoints(60);
    						// 设置图片所在列宽度为80px,注意这里单位的一个换算
    						sheet.setColumnWidth(i, (short) (35.7 * 80));
    						// sheet.autoSizeColumn(i);
    						byte[] bsValue = (byte[]) value;
    						HSSFClientAnchor anchor = new HSSFClientAnchor(0,
    								0, 1023, 255, (short) 6, index, (short) 6,
    								index);
    						anchor.setAnchorType(2);
    						patriarch.createPicture(anchor, workbook
    								.addPicture(bsValue,
    										HSSFWorkbook.PICTURE_TYPE_JPEG));
    					} else {
    						// 其它数据类型都当作字符串简单处理
    						textValue = value.toString();
    					}
    					// 如果不是图片数据,就利用正则表达式判断textValue是否全部由数字组成
    					if (textValue != null) {
    						Pattern p = Pattern.compile("^//d+(//.//d+)?$");
    						Matcher matcher = p.matcher(textValue);
    						if (matcher.matches()) {
    							// 是数字当作double处理
    							cell.setCellValue(Double.parseDouble(textValue));
    						} else {
    							HSSFRichTextString richString = new HSSFRichTextString(
    									textValue);
    							HSSFFont font3 = workbook.createFont();
    							font3.setColor(HSSFColor.BLUE.index);
    							richString.applyFont(font3);
    							cell.setCellValue(richString);
    						}
    					}
    				} catch (SecurityException e) {
    					e.printStackTrace();
    				} catch (NoSuchMethodException e) {
    					e.printStackTrace();
    				} catch (IllegalArgumentException e) {
    					e.printStackTrace();
    				} catch (IllegalAccessException e) {
    					e.printStackTrace();
    				} catch (InvocationTargetException e) {
    					e.printStackTrace();
    				} finally {
    					// 清理资源
    				}
    			}
    		}
    		try {
    			workbook.write(out);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    
    	public static void main(String[] args) {
    		// 测试学生
    		ExportExcel<Student> ex = new ExportExcel<Student>();
    		String[] headers = { "学号", "姓名", "年龄", "性别", "出生日期" };
    		List<Student> dataset = new ArrayList<Student>();
    		dataset.add(new Student(10000001, "张三", 20, true, new Date()));
    		dataset.add(new Student(20000002, "李四", 24, false, new Date()));
    		dataset.add(new Student(30000003, "王五", 22, true, new Date()));
    		// 测试图书
    		ExportExcel<Book> ex2 = new ExportExcel<Book>();
    		String[] headers2 = { "图书编号", "图书名称", "图书作者", "图书价格", "图书ISBN",
    				"图书出版社", "封面图片" };
    		List<Book> dataset2 = new ArrayList<Book>();
    		try {
    			BufferedInputStream bis = new BufferedInputStream(
    					new FileInputStream("V://book.bmp"));
    			byte[] buf = new byte[bis.available()];
    			while ((bis.read(buf)) != -1) {
    				//
    			}
    			dataset2.add(new Book(1, "jsp", "leno", 300.33f, "1234567",
    					"清华出版社", buf));
    			dataset2.add(new Book(2, "java编程思想", "brucl", 300.33f,
    					"1234567", "阳光出版社", buf));
    			dataset2.add(new Book(3, "DOM艺术", "lenotang", 300.33f,
    					"1234567", "清华出版社", buf));
    			dataset2.add(new Book(4, "c++经典", "leno", 400.33f, "1234567",
    					"清华出版社", buf));
    			dataset2.add(new Book(5, "c#入门", "leno", 300.33f, "1234567",
    					"汤春秀出版社", buf));
    			OutputStream out = new FileOutputStream("E://a.xls");
    			OutputStream out2 = new FileOutputStream("E://b.xls");
    			ex.exportExcel(headers, dataset, out);
    			ex2.exportExcel(headers2, dataset2, out2);
    			out.close();
    			out2.close();
    			JOptionPane.showMessageDialog(null, "导出成功!");
    			System.out.println("excel导出成功!");
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    }

            写完之后,如果您不是用eclipse工具生成的Servlet,千万别忘了在web.xml上注册这个Servelt。而且同样的,拷贝一张小巧的图书图片命名为book.jpg放置到当前WEB根目录的/WEB-INF/下。部署好web工程,用浏览器访问Servlet看下效果吧!是不是下载成功了。呵呵,您可以将下载到本地的excel报表用打印机打印出来,这样您就大功告成了。完事了我们就思考:我们发现,我们做的方法,不管是本地调用,还是在WEB服务器端用Servlet调用;不管是输出学生列表,还是图书列表信息,代码都几乎一样,而且这些数据我们很容器结合后台的DAO操作数据库动态获取。恩,类和方法的通用性和灵活性开始有点感觉了。好啦,祝您学习愉快!

    Java导出Excel弹出下载框

            将ExportExcel类的main方法改成public void test(),OutputStream out = new FileOutputStream("E://a.xls");这边可以对应Servlet适当改下路径,Servlet代码如下:

    public class ExcelServlet extends HttpServlet {
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		(new ExportExcel()).test();
    		String str = "a.xls";
    		//String path = request.getSession().getServletContext().getRealPath(str);
    		download("E://a.xls", response);
    	}
    	private void download(String path, HttpServletResponse response) {
    		try {
    			// path是指欲下载的文件的路径。
    			File file = new File(path);
    			// 取得文件名。
    			String filename = file.getName();
    			// 以流的形式下载文件。
    			InputStream fis = new BufferedInputStream(new FileInputStream(path));
    			byte[] buffer = new byte[fis.available()];
    			fis.read(buffer);
    			fis.close();
    			// 清空response
    			response.reset();
    			// 设置response的Header
    			response.addHeader("Content-Disposition", "attachment;filename="
    					+ new String(filename.getBytes()));
    			response.addHeader("Content-Length", "" + file.length());
    			OutputStream toClient = new BufferedOutputStream(
    					response.getOutputStream());
    			response.setContentType("application/vnd.ms-excel;charset=gb2312");
    			toClient.write(buffer);
    			toClient.flush();
    			toClient.close();
    		} catch (IOException ex) {
    			ex.printStackTrace();
    		}
    	}
    }

    补充:

    于2014-08-28补充

    今天(20140828)用博文中的代码重新调试了下,献上Java POI 导入导出Excel简单小例子一枚,方便你我。

    源代码下载地址:http://download.csdn.net/detail/evangel_z/7834173

    注:

    1)源代码是不含jar包的,jar包可以去本文补充部分下边的链接中下载,本地测试例子中所使用的所有jar包如下:

    2)直接使用该例子源代码的话,需要在E盘下放置一张名为book的png格式图片(book.png),用于导出含有图片的excel文件(b.xls)。当然,您可以根据实际需要更换代码中的图片路径;

    3)使用本文源代码正常启动服务器后,web页面导出Excel文档具体路径:http://localhost:8080/poi/export

    4)例子代码比较简单,仅供参考……

     

    于2014-12-02补充

    前段时间,在之前代码的基础上,抽空改了改代码,具体如下:

    1)去除图片和Excel文件未找到的bug;

    2)增加代码需要的jar包;

    3)完整代码已放在github上……

    最新代码下载地址:https://github.com/T5750/poi

     

    于2015-01-13补充

    由于不少热心网友问读取Excel模版导出相关问题,故今晚在之前代码的基础上,临时加了些代码,具体如下:

    1)新增使用POI读取Excel模版的例子,模版为poi/WebContent/docs/replaceTemplate.xls;

    2)在poi/src/replace/TestExcelReplace类中,请根据实际情况,调整读取和保存Excel的路径后,直接运行即可;

    最新代码下载地址不变,先到这里,抽空再优化……

     

    于2015-01-24补充

    前段时间,在之前代码的基础上,增加了种读取Excel模版导出的方式。今天,抽空改了改说明,具体如下:

    1)在poi/src/replace包中,新增上次补充里POI读取Excel模版的ReplaceExcelServlet.java,供web页面使用;

    2)在poi/src/template包中,增加了种读取Excel模版导出的方式,其对应的模版为poi/WebContent/docs/template.xls。请根据实际情况,调整读取和保存Excel的路径后,直接运行TestTemplate.java即可。TemplateServlet.java则对应web页面使用;

    最新代码下载地址不变……

     

    于2015-01-31补充

    昨晚,在之前代码的基础上,加上本文中可直接运行导出Excel的代码。具体如下:

    1)在poi/src/testExport包中,TestExportExcel.java,链接地址:https://github.com/T5750/poi/blob/master/src/testExport/TestExportExcel.java

    最新代码下载地址不变……

     

    于2015-02-10补充

    在之前代码的基础上,加上可以通过POI导出Excel2007的例子。具体如下:

    1)在poi/src/testExport包中,TestExportExcel2007.java,链接地址:https://github.com/T5750/poi/blob/master/src/testExport/TestExportExcel2007.java

     

    于2015-02-12补充

    今天,在之前代码的基础上,抽空改了改代码。具体如下:

    1)在poi/src/testExport包中,新增Excel2007Servlet.java。以及,修改相关配置;

    2)在poi/src/testExport包中,对导出Excel文件进行重命名,便于查看;

    3)更新该poi例子对应的帮助文档。

     

    于2019-07-23补充

    Servlet -> Spring Boot

    相关文章&官方文档&源代码下载地址:

    Java POI读取Office Excel (2003,2007)及相关jar包 Spring Boot

    最新官方文档:https://poi.apache.org/apidocs/index.html

    源代码下载地址:http://download.csdn.net/detail/evangel_z/7834173
    最新代码下载地址:https://github.com/T5750/poi

    展开全文
  • oracle11g数据库导入导出方法教程

    万次阅读 多人点赞 2018-03-04 15:03:09
    oracle11g数据库导入导出: ①:传统方式——exp(导出)和(imp)导入: ②:数据泵方式——expdp导出和(impdp)导入; ③:第三方工具——PL/sql Develpoer;一、什么是数据库导入导出? oracle11g数据库的导入/导出,...

    oracle11g数据库导入导出:

    ①:传统方式——exp(导出)和(imp)导入:
    ②:数据泵方式——expdp导出和(impdp)导入;
    ③:第三方工具——PL/sql Develpoer;

    一、什么是数据库导入导出?
    oracle11g数据库的导入/导出,就是我们通常所说的oracle数据的还原/备份。
    数据库导入:把.dmp 格式文件从本地导入到数据库服务器中(本地oracle测试数据库中);
    数据库导出:把数据库服务器中的数据(本地oracle测试数据库中的数据),导出到本地生成.dmp格式文件。
    .dmp 格式文件:就是oracle数据的文件格式(比如视频是.mp4 格式,音乐是.mp3 格式);

    二、二者优缺点描述:
    1.exp/imp:
    优点:代码书写简单易懂,从本地即可直接导入,不用在服务器中操作,降低难度,减少服务器上的操作也就                                         保证了服务器上数据文件的安全性。
    缺点:这种导入导出的速度相对较慢,合适数据库数据较少的时候。如果文件超过几个G,大众性能的电                                       脑,至少需要4~5个小时左右。
    2.expdp/impdp:
    优点:导入导出速度相对较快,几个G的数据文件一般在1~2小时左右。
    缺点:代码相对不易理解,要想实现导入导出的操作,必须在服务器上创建逻辑目录(不是真正的目录)。我们                                       都知道数据库服务器的重要性,所以在上面的操作必须慎重。所以这种方式一般由专业的程序人员来完                                           成(不一定是DBA(数据库管理员)来干,中小公司可能没有DBA)。
    3.PL/sql Develpoer:
    优点:封装了导入导出命令,无需每次都手动输入命令。方便快捷,提高效率。
    缺点:长时间应用会对其产生依赖,降低对代码执行原理的理解。

    三、特别强调:
    目标数据库:数据即将导入的数据库(一般是项目上正式数据库);
    源数据库:数据导出的数据库(一般是项目上的测试数据库);
    1.目标数据库要与源数据库有着名称相同的表空间。
    2.目标数据在进行导入时,用户名尽量相同(这样保证用户的权限级别相同)。
    3.目标数据库每次在进行数据导入前,应做好数据备份,以防数据丢失。
    4.使用数据泵时,一定要现在服务器端建立可用的逻辑目录,并检查是否可用。
    5.弄清是导入导出到相同版本还是不同版本(oracle10g版本与oracle11g版本)。
    6.目标数据导入前,弄清楚是数据覆盖(替换),还是仅插入新数据或替换部分数据表。
    7.确定目标数据库磁盘空间是否足够容纳新数据,是否需要扩充表空间。
    8.导入导出时注意字符集是否相同,一般Oracle数据库的字符集只有一个,并且固定,一般不改变。
    9.导出格式介绍:
       Dmp格式:.dmp是二进制文件,可跨平台,还能包含权限,效率好; 
       Sql格式:.sql格式的文件,可用文本编辑器查看,通用性比较好,效率不如第一种,
    适合小数据量导入导出。尤其注意的是表中不能有大字段 (blob,clob,long),如果有,会报错; 
       Pde格式:.pde格式的文件,.pde为PL/SQL Developer自有的文件格式,只能用PL/SQL Developer工具
    导入导出,不能用文本编辑器查看;
    10.确定操作者的账号权限。

    四、二者的导入导出方法:
    1、传统方法:
    通用命令:exp(imp)  username/password@SERVICENAME:1521 file="e:\temp.dmp" full = y;
    数据库导出举例:

     

    exp xinxiaoyong/123456@127.0.0.1:1521 file="e:\temp.dmp" full = y;

    exp:导出命令,导出时必写。
    imp:导入命令,导入时必写,每次操作,二者只能选择一个执行。
    username:导出数据的用户名,必写;
    password:导出数据的密码,必写;
    @:地址符号,必写;
    SERVICENAME:Oracle的服务名,必写;
    1521:端口号,1521是默认的可以不写,非默认要写;
    file="e:\temp.dmp" : 文件存放路径地址,必写;
    full=y :表示全库导出。可以不写,则默认为no,则只导出用户下的对象;
    方法细分:
    1.完全导入导出:
    exp(imp)  username/password@SERVICENAME:1521 file="e:\temp.dmp" full = y;
    2.部分用户表table导入导出:
    exp(imp)  username/password@SERVICENAME:1521 file="e:\temp.dmp" tabels=                                                                  (table1,table2,table3,...);
    3.表空间tablespaces导入导出:
    //一个数据库实例可以有N个表空间(tablespace),一个表空间下可以有N张表(table)。
    exp(imp)  username/password@SERVICENAME:1521 file="e:\temp.dmp" tablespaces=                                                         (tablespace1,tablespace2,tablespace3,...);
    4.用户名username对象导入导出:
    exp(imp)  username/password@SERVICENAME:1521 file="e:\temp.dmp"                                                                                owner(username1,username2,username3);

    2、数据泵方法:
    创建directory:
    expdp(impdp) username/password@SERVICENAME:1521 schemas=username                                                                       dumpfile=file1.dmp logfile=file1.log directory=testdata1 remap_schema=test:test;
    数据库导出举例:
    expdp xinxiaoyong/123456@127.0.0.1:1521 schemas=xinxiaoyong dumpfile=test.dmp 
    logfile=test.log directory=testdata1;

    exp:导出命令,导出时必写。
    imp:导入命令,导入时必写,每次操作,二者只能选择一个执行。
    username:导出数据的用户名,必写;
    password:导出数据的密码,必写;
    @:地址符号,必写;
    SERVICENAME:Oracle的服务名,必写;
    1521:端口号,1521是默认的可以不写,非默认要写;
    schemas:导出操作的用户名;
    dumpfile:导出的文件;
    logfile:导出的日志文件,可以不写;
    directory:创建的文件夹名称;
    remap_schema=源数据库用户名:目标数据库用户名,二者不同时必写,相同可以省略;
    1.查看表空间:
    select * from dba_tablespaces;
    2.查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存                                                    在,则出错)。
    select * from dba_directories;
    3.创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。 
    create directory testdata1 as 'd:\test\dump';
    4.给xinxiaoyong用户赋予在指定目录的操作权限,最好以system等管理员赋予。
    //xinxiaoyong 是用户名(123456是用户密码)
    grant read,write on directory testdata1 to xinxiaoyong;
    5.导出数据

     

     

    1)按用户导 expdp xinxiaoyong/123456@orcl schemas=xinxiaoyong                                                                                           dumpfile=expdp.dmp directory=testdata1;

    2)并行进程parallel expdp xinxiaoyong/123456@orcl directory=testdata1                                                                                    dumpfile=xinxiaoyong3.dmp parallel=40 job_name=xinxiaoyong3
    3)按表名导 expdp xinxiaoyong/123456@orcl tables=emp,dept dumpfile=expdp.dmp                                                                directory=testdata1;
    4)按查询条件导 expdp xinxiaoyong/123456@orcl directory=testdata1                                                                                            dumpfile=expdp.dmp tables=emp query='WHERE deptno=20';
    5)按表空间导 expdp system/manager directory=testdata1 dumpfile=tablespace.dmp                                                                    tablespaces=temp,example;
    6)导整个数据库 expdp system/manager directory=testdata1 dumpfile=full.dmp FULL=y;
    6.还原数据
    1)导到指定用户下 impdp xinxiaoyong/123456 directory=testdata1 dumpfile=expdp.dmp                                                              schemas=xinxiaoyong;
    2)改变表的owner impdp system/manager directory=testdata1 dumpfile=expdp.dmp                                                               tables=xinxiaoyong.dept remap_schema =xinxiaoyong:system;
    3)导入表空间 impdp system/manager directory=testdata1 dumpfile=tablespace.dmp                                                         tablespaces=example;
    4)导入数据库 impdb system/manager directory=dump_dir dumpfile=full.dmp FULL=y;
    5)追加数据 impdp system/manager directory=testdata1 dumpfile=expdp.dmp                                                         schemas=system  table_exists_action;

    3、PLSQL方法:
    登录plsql工具,所使用用户为源数据库有导出权限(exp_full_database,dba等)的用户。 
      1.导出建表语句(包括存储结构) 

     

     

      导出步骤tools ->export user object,选择要导出的对象,导出.sql格式文件并等待导出完成,如 下图:

     

                                                

     

    导出数据文件 ;
       2.导出步骤tools ->export tables,选择要导出的表及导出的格式进行导出。 

     

       导出为dmp格式,如下图:

    导出为sql格式,如下图: 

    导出为pde格式,如下图: 

     

                提示说明:采用第三方工具导出导入整个数据库的话,耗时较长,一定要有足够

     

                            的时间来操作(数据量大的话需要好几个小时)。

     

    3.导入建表语句 
       导入步骤tools->import tables->SQL Inserts 导入.sql文件 
    4.导入数据; 
       tools->import talbes,然后再根据导出的数据格式选择导入dmp文件,或者sql文件,
    或者pde文件。 
       提示说明:导入之前最好把以前的表删除,当然导入另外数据库除外。 
          另外导入时当发现进度条一直卡在一个点,而且导出的文件不再增大时,甚至是提示程序
    未响应,千万不要以为程序卡死了,这个导入导出就是比较缓慢,只要没有提示报错,

     

    或者导入完成就不要停止程序。

    提示:创建数据库,表空间这里略过,本文主要讨论数据的导入导出,如果对此感觉稍有遗漏,尽请见谅。由于水平有限,本文档仅提供参考。如代码有错误之处,请见谅。如果有更好的开发经验,感谢回复。谢谢观看!!!;

    展开全文
  • PowerDesigner导出word模版

    千次下载 热门讨论 2013-05-20 00:05:11
    PowerDesigner导出word通用模版,导出表清单和表列清单
  • mysql workbench 导出建表语句 导出数据

    万次阅读 多人点赞 2016-08-31 17:19:26
    前言本教程主要讲述,利用mysql workbench导出建表语句,过程很简单,有两种方法。教程方法一概述这种方法是比较正规的,也是mysql workbench提供的正式的导出建表语句或者导出数据的方式。 导出建表语句和数据...

    前言

    本教程主要讲述,利用mysql workbench导出建表语句,过程很简单,有两种方法。

    教程

    方法一

    概述

    这种方法是比较正规的,也是mysql workbench提供的正式的导出建表语句或者导出数据的方式。
    

    导出建表语句和数据

    server----->data export----->选中表
    这里写图片描述


    注意,export to dump project folder,这种方式是每个表对应一个sql文件。
    这里写图片描述


    导出建表语句和数据到一个文件

    注意,export to self-contained file,这种方式是所有表导出到一个表。
    这里写图片描述

    只导出建表语句&高级选项

    也许,你已经注意到了,在右下角有个下拉菜单可以选择导出数据和结构、导出数据、导出结构,导出过程同上。
    这里写图片描述

    在右上角有个advanced options,可以定制,很多选项
    这里写图片描述
    这里写图片描述

    方法二

    概述

    这种方法有点“野路子”的感觉,是我琢磨出来的,我们看到,在左侧右击表的时候,有个create sql statement的选项,那么如果选择了全部表,那就是导出整个数据库的建表语句了^_^。注意这种方式**只能导出建表语句,不能导出数据。**
    

    这里写图片描述

    导出全部表的建表语句

    • 选中要导出的表------>右击---->send to sql editor----->create statement
      这里写图片描述

    • 点击保存,输入文件名,导出的sql就在文件中了!同理,我们也可以导出删除、查询、修改语句。
      这里写图片描述

    9年全栈开发经验,请关注个人公众号

    在这里插入图片描述

    展开全文
  • 订单导出(淘宝天猫)

    万次阅读 热门讨论 2019-08-14 14:28:43
    最新版: ... 在多语言Windows XP/Vista/7/8/10上测试通过,中英日韩 ...淘宝天猫买家卖家订单导出,可视化方案直观呈现所有订单的数据 注意:只能导出自己已登录账号下的订单数据,而不是采集任意其他用...
  • 【开源】博客导出工具

    万次阅读 多人点赞 2012-08-30 13:15:57
    本人就这些需求,特开发了C#版【博客导出工具】。该工具现支持的网站包括:CSDN、ITEYE、博客园、新浪、搜狐、和讯、ChinaUnix、网易、51CTO、开源中国、百度空间、QQ空间(如有遗漏请留言补充)。支持3种导出方式:...
  • Docker镜像的导入导出

    万次阅读 多人点赞 2018-04-12 15:59:03
    Docker镜像的导入导出 本文介绍Docker镜像的导入导出,用于迁移、备份、升级等场景,准备环境如下: CentOS 7.0 Docker 1.18 导入导出命令介绍 涉及的命令有export、import、save、load save 命令 ...
  • 导出图片: only_pic.html 2. 导出图片到word: word_pic.html 3. 导出图片和内容到word: word_content_pic.html 直接导出 4.direct_pic.html 多图导出 5.word_content_pic.html
  • Navicat 导出导入数据库

    万次阅读 多人点赞 2018-07-03 16:40:52
    把mysql数据库中的一个数据库导出(备份,或者传输给别人), 导出: 使用Navicat连接到mysql,然后选中你要导出的数据库,右键,选择转储SQL文件...,命名为数据名.sql,保存到本地中即可。如下图: 选择...
  • Easypoi模版形式导出excel导出图片

    千次阅读 热门讨论 2019-02-26 16:19:43
    若您正在使用easypoi进行excel导出的话,希望这篇文章能帮到您。 本文主要是使用easypoi通过模版的形式导出图片。 若需要导出多sheet得话,非模版形式,可以参考我的文章EasyPOI-&gt;非模版形式导出Excel(多...
  • MongoDB 数据集合导出 与 导入

    万次阅读 2018-09-12 16:26:35
    导出(mongoexport) 导入(mongoimport) 导出(mongoexport) 导出数据命令:mongoexport -h dbhost -d dbname -c collectionName -o output -h:数据库地址,MongoDB 服务器所在的 IP 与 端口,如 localhost:27017...
  • jquery导出excel(解决中文导出

    千次下载 热门讨论 2015-06-08 01:28:13
    网上下载的tableexport可以实现table的客户段导出功能,但由于所提供的base64无法实现中文导出,所以修改了base64编码,并修改了tableexport中使用base64部分,实现了对中文表格的导出功能
  • 选择导出其实没什么特别的 首先我们需要在实体类中添加注解 你想让它在Excel中位于第几列得弄出来所以说我们需要写第几列order=1就是第一列 如果我们想要表连接查询导出我们需要在实体类中写它表连接导出的属性 ...
  • Java POI 导入导出Excel简单实例源代码

    千次下载 热门讨论 2014-08-28 16:25:39
    Java POI 导入导出Excel简单实例源代码 该源代码的jar包,参见以下博文附录截图 Java POI导出EXCEL经典实现 Java导出Excel弹出下载框 http://blog.csdn.net/evangel_z/article/details/7332535 web页面导出Excel...
  • 用MySqlCE导出数据库脚本时,如数据库中包含中文内容,则导出异常。 现在可以通过mysqldump.exe直接导出数据库脚本步骤如下: StepOne 运行Cmd打开控制台程序 StepTwo将当前目录转向mysqldump.exe目录下 输入...
  • CSDN博客导出工具v4.2

    千次下载 热门讨论 2012-09-19 16:56:55
    (该版本新增百度和QQ空间的日志导出功能) 本工具几乎支持国内所有知名博客的导出功能。 支持3种导出方式:个人博客、博客专栏、指定URL。 支持5种导出格式:CHM、PDF、HTML、TXT、EPUB。 更多:...
  • Mysql导出数据库,导出视图

    千次阅读 2018-12-03 15:05:25
    1.Navacat for mysql 数据库工具导出某一数据库数据,并不会携带相应的视图,所以有视图的数据库文件需要用命令行来导出数据库 2.cmd进入mysql的bin目录下,运行以下命令mysqldump -h192.168.110.190 -uroot -p2019...
  • Vue 导出PDF文件终极解决方案 关于 Vue 导出 Echarts 统计图为 pdf 格式,网上许多作者给出了解决方案,但是都不能解决一些根本问题,
  • Java 导出Excel利用模版导出

    万次阅读 2018-07-31 15:09:08
    Java导出Excel和word的方式大体相同 1、Excel模版导出到页面下载 首先,导入依赖在pom.xml中我选择的事1.03的版本  第二、在项目或是自己需要的地方建立个文件夹放导出文件的模版,并且配好模版    第三...
  • 1远程导出某一个表 仅仅导出结构 mysqldump -uroot -proot -h 10.10.11.255 -d mydatabase table_student >/usr/local/table_student.sql 上面语句很简单: 参数特别说明(以下按照该说明即可): mysqldump -....
  • ps导出内容快捷键 快速导出png

    千次阅读 2019-06-11 10:46:52
    PHOTOSHOP常用快捷键大全 PS快速导出为png快捷键是什么啊 ps导出内容快捷键 == ps快速导出png没有快捷键, 可以自己设置。 ==
  • 导出车辆里程

    千次阅读 2020-04-29 18:28:12
    文章目录导出车辆里程截止4/27日根据vin里程数据导出生成导出的Excel存放的位置:10.110.35.83 正式环境 platform 地址//指定时间范围车辆里程// 最新车辆上传里程VPN浏览器执行:获取4/27那天没有数据的特殊情况:...
  • C导出接口与C++导出接口对比

    千次阅读 2017-12-26 22:19:56
    C导出接口与C++导出接口对比
  • 提到Excel导出功能,可能很多人都使用springmvc框架做过,笔者今天要给大家分享的是基于springBoot开发Excel复杂模板导出功能(所谓复杂模板指在模板里的特定表头里有不同的单元格合并以及背景色,字体颜色的填充,...
  • c++ DLL导出类和导出函数

    千次阅读 2019-07-03 15:10:27
    一、导出函数 背景: 导出函数: 在DLL中有一张导出表,其中有一系列函数,这些函数叫做导出函数。这些函数可供外部程序调用,即这些函数都是该DLL的入口点(类似main函数)。不在导出表中的函数,为该DLL私有的函数...
  • pb导出excel2007

    热门讨论 2015-11-23 11:24:39
    pb数据窗口原样导出为excel,支持导出2003,2007两种格式,使用dll导出(非ole方式),无需安装excel, 速度极快,20万条数据只需要130秒。
  • DBeaver 导出EXCEL文件

    千次阅读 2021-01-22 11:56:00
    项目上需要导出数据库的记录为EXCEL形式,以便比对。 步骤 1、查询出结果集,选择导出结果集。 2、导出到CSV文件 3、默认选项,条数默认是10000,可以自根据需要调整。 4、选择字符集编码为:GB2312 选择其他字符...
  • 一、导出图像、 1、生成的图像、 2、复制图形、 3、保存、 4、另存为、 二、复制选项、 1、复制选项、 2、图形属性、 3、导出设置、
  • myeclipse10.7.1 导出war问题解决办法

    千次下载 热门讨论 2015-04-16 09:05:57
    myeclipse10.7.1 导出war问题解决办法 myeclipse10破解后,导出war包时报“SECURITY ALERT: INTEGERITY CHECK ERROR” 只要执行完第一步的破解后,将com.genuitec.eclipse.export.wizard_9.0.0.me201211011550.jar...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,054,391
精华内容 421,756
关键字:

导出