怎样将EXCEL数据表导入到SQL中

 我来答
百度网友dc54b5e
2016-10-10 · TA获得超过2178个赞
知道大有可为答主
回答量:1475
采纳率:37%
帮助的人:441万
展开全部

在Excel中录入好数据以后,可能会有导入数据库的需求,这个时候就需要利用一些技巧导入。

如何将excel表导入数据库的方法:

1、对于把大量数据存放到数据库中,最好是用图形化数据库管理工具,可是如果没有了工具,只能执行命令的话这会是很费时间的事。那只能对数据进行组合,把数据组成insert语句然后在命令行中批量直行即可。

2、对下面数据进行组合,这用到excel中的一个功能。

在excel中有个fx的输入框,在这里把组好的字符串填上去就好了。

注:字符串1 & A2 &字符串2 & ...

A2可以直接输入,也可以用鼠标点对应的单元格。

3、每个字符串之间用 & 符号进行连接。下面是第一条连接字符串

="insert into tavern values('"&A2&"','"&B2&"','"&C2&"','"&D2&"');"

写好后按回车键Enter就能组合出对应的字符串了。

insert into tavern values('jw_agi','曙光','0','1');

4、组好第一行的字符串后,把鼠标放到单元格右下方,出现加粗的十字,单击按下(别松开),一直往下拉,直到最后一行再放开就行了。

5、这样就把insert语句都整理好了,接下来就是把这些语句批量执行就可以了。

匿名用户
推荐于2018-03-13
展开全部
方法/步骤
1
  打开SQL Server Management Studio,按图中的路径进入导入数据界面。

2
  导入的时候需要将EXCEL的文件准备好,不能打开。点击下一步。

3
  数据源:选择“Microsoft Excel”除了EXCEL类型的数据,SQL还支持很多其它数据源类型。

4
  选择需要导入的EXCEL文件。点击浏览,找到导入的文件确定。

5
  再次确认文件路径没有问题,点击下一步。

6
  默认为是使用的WINODWS身份验证,改为使用SQL身份验证。输入数据库密码,注意:数据库,这里看看是不是导入的数据库。也可以在这里临时改变,选择其它数据库。

7
  选择导入数据EXCEL表内容范围,若有几个SHEET表,或一个SHEET表中有些数据我们不想导入,则可以编写查询指定的数据进行导入。点击下一步。

8
  选择我们需要导入的SHEET表,比如我在这里将SHEET表名改为price,则导入后生面的SQL数据库表为price$。点击进入下一步。

9
  点击进入下一步。

10
  在这里完整显示了我们的导入的信息,执行内容,再次确认无误后,点击完成,开始执行。

11
  可以看到任务执行的过程和进度。

12
  执行成功:我们可以看看执行结果,已传输1754行,表示从EXCEL表中导入1754条数据,包括列名标题。这样就完成了,执行SQL查询语句:SELECT * FROM price$就可以查看已导入的数据内容。

http://jingyan.baidu.com/article/358570f66145a6ce4724fcba.html
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
己学好4
2016-02-22 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:91%
帮助的人:4995万
展开全部
第一步:登录到 SQL Server Management Studio
第二步:在 “对象资源管理器 ”中右键单击 “管理 ”,在弹出列表中单击 “导入数据 ”
第三步:在 “导入向导 ”对话框中单击 “下一步 ”,进入到 “选择数据源 ”对话框,在 “数据源 ”列表中选择 “Microsoft Excel ”,同时选择相应的 Excel 文档,完成后单击 “下一步 ”(一定要勾选该对话框中的 “首行包含列名称 ”,因此它是将 Excel文档中的列标题为数据库表中的列项标题)
第四步:指定目标数据库服务,依次单击 “下一步 ”。。。。至到 “完成 ”
第五步:重新打到 SQL Server Management Studio,进入到导入的数据库表,可以发现所导入的 Excel文档数据。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千锋教育
2018-07-30 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
方法/步骤
1
打开sql server 2005,如图,并且准备好Excel数据表,下面工作马上开始

2
打开sql server 2005之后随意选择一个数据库,右击任务——导入数据。

3
导入数据第一个页面,点击下一步

4
选择数据源为Excel,选择文件路径和Excel版本,点击下一步

5
选择目标源和服务器名称,使用你自己的登录方式,点击下一步,选择第一个选项,复制。。。。

6
选择表和数据目标,如图所示,可以点击预览,然后下一步——立即执行——下一步——完成

7
传输完成,如图所示

8
刷新数据库,查看新出现的数据表,就可以发现新导入的数据了,OK了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黑马程序员
2016-09-22 · 改变中国IT教育,我们正在行动
黑马程序员
黑马程序员为大学毕业后,有理想、有梦想,想从事IT行业的年轻人改变自己的命运。黑马程序员成就IT黑马
向TA提问
展开全部

下面是使用Java实现的,将Excel数据表中的数据导入到数据库里里面。


public class ReadExcel {
   /**
    * 对外提供读取excel 的方法
    * */
   public static List<List<Object>> readExcel(File file) throws IOException {
       String fileName = file.getName();
       String extension = fileName.lastIndexOf(".") == -1 ? "" : fileName
               .substring(fileName.lastIndexOf(".") + 1);
       if ("xls".equals(extension)) {
           return read2003Excel(file);
       } else if ("xlsx".equals(extension)) {
           return read2007Excel(file);
       } else {
           throw new IOException("不支持的文件类型");
       }
   }

   /**
    * 读取 office 2003 excel
    *
    * @throws IOException
    * @throws FileNotFoundException
    */
   private static List<List<Object>> read2003Excel(File file)
           throws IOException {
       List<List<Object>> list = new LinkedList<List<Object>>();
       HSSFWorkbook hwb = new HSSFWorkbook(new FileInputStream(file));
       HSSFSheet sheet = hwb.getSheetAt(0);
       Object value = null;
       HSSFRow row = null;
       HSSFCell cell = null;
       int counter = 0;
       for (int i = sheet.getFirstRowNum(); counter < sheet
               .getPhysicalNumberOfRows(); i++) {
           row = sheet.getRow(i);
           if (row == null) {
               continue;
           } else {
               counter++;
           }
           List<Object> linked = new LinkedList<Object>();
           for (int j = row.getFirstCellNum(); j <= row.getLastCellNum(); j++) {
               cell = row.getCell(j);
               if (cell == null) {
                   continue;
               }
               DecimalFormat df = new DecimalFormat("0");// 格式化 number String
                                                           // 字符
               SimpleDateFormat sdf = new SimpleDateFormat(
                       "yyyy-MM-dd HH:mm:ss");// 格式化日期字符串
               DecimalFormat nf = new DecimalFormat("0.00");// 格式化数字
               switch (cell.getCellType()) {
               case XSSFCell.CELL_TYPE_STRING:
               //  System.out.println(i + "行" + j + " 列 is String type");
                   value = cell.getStringCellValue();
                   break;
               case XSSFCell.CELL_TYPE_NUMERIC:
                   /*System.out.println(i + "行" + j
                           + " 列 is Number type ; DateFormt:"
                           + cell.getCellStyle().getDataFormatString());*/
                   if ("@".equals(cell.getCellStyle().getDataFormatString())) {
                       value = df.format(cell.getNumericCellValue());
                   } else if ("General".equals(cell.getCellStyle()
                           .getDataFormatString())) {
                       value = nf.format(cell.getNumericCellValue());
                   } else {
                       value = sdf.format(HSSFDateUtil.getJavaDate(cell
                               .getNumericCellValue()));
                   }
                   break;
               case XSSFCell.CELL_TYPE_BOOLEAN:
               //  System.out.println(i + "行" + j + " 列 is Boolean type");
                   value = cell.getBooleanCellValue();
                   break;
               case XSSFCell.CELL_TYPE_BLANK:
               //  System.out.println(i + "行" + j + " 列 is Blank type");
                   value = "";
                   break;
               default:
               //  System.out.println(i + "行" + j + " 列 is default type");
                   value = cell.toString();
               }
               if (value == null || "".equals(value)) {
                   continue;
               }
               linked.add(value);
           }
           list.add(linked);
       }
       return list;
   }

   /**
    * 读取Office 2007 excel
    * */
   private static List<List<Object>> read2007Excel(File file)
           throws IOException {
       List<List<Object>> list = new LinkedList<List<Object>>();
       // 构造 XSSFWorkbook 对象,strPath 传入文件路径
       XSSFWorkbook xwb = new XSSFWorkbook(new FileInputStream(file));
       // 读取第一章表格内容
       XSSFSheet sheet = xwb.getSheetAt(0);
       Object value = null;
       XSSFRow row = null;
       XSSFCell cell = null;
       int counter = 0;
       for (int i = sheet.getFirstRowNum(); counter < sheet
               .getPhysicalNumberOfRows(); i++) {
           row = sheet.getRow(i);
           if (row == null) {
               continue;
           } else {
               counter++;
           }
           List<Object> linked = new LinkedList<Object>();
           for (int j = row.getFirstCellNum(); j <= row.getLastCellNum(); j++) {
               cell = row.getCell(j);
               if (cell == null) {
                   continue;
               }
               DecimalFormat df = new DecimalFormat("0");// 格式化 number String
                                                           // 字符
               SimpleDateFormat sdf = new SimpleDateFormat(
                       "yyyy-MM-dd HH:mm:ss");// 格式化日期字符串
               DecimalFormat nf = new DecimalFormat("0.00");// 格式化数字
               switch (cell.getCellType()) {
               case XSSFCell.CELL_TYPE_STRING:
                   System.out.println(i + "行" + j + " 列 is String type");
                   value = cell.getStringCellValue();
                   break;
               case XSSFCell.CELL_TYPE_NUMERIC:
               /*  System.out.println(i + "行" + j
                           + " 列 is Number type ; DateFormt:"
                           + cell.getCellStyle().getDataFormatString());*/
                   if ("@".equals(cell.getCellStyle().getDataFormatString())) {
                       value = df.format(cell.getNumericCellValue());
                   } else if ("General".equals(cell.getCellStyle()
                           .getDataFormatString())) {
                       value = nf.format(cell.getNumericCellValue());
                   } else {
                       value = sdf.format(HSSFDateUtil.getJavaDate(cell
                               .getNumericCellValue()));
                   }
                   break;
               case XSSFCell.CELL_TYPE_BOOLEAN:
           //      System.out.println(i + "行" + j + " 列 is Boolean type");
                   value = cell.getBooleanCellValue();
                   break;
               case XSSFCell.CELL_TYPE_BLANK:
               //  System.out.println(i + "行" + j + " 列 is Blank type");
                   value = "";
                   break;
               default:
               //  System.out.println(i + "行" + j + " 列 is default type");
                   value = cell.toString();
               }
               if (value == null || "".equals(value)) {
                   continue;
               }
               linked.add(value);
           }
           list.add(linked);
       }
       return list;
   }

   public static void main(String[] args) {
       try {
           readExcel(new File("D:\\Java\\apache-tomcat-8.0.26\\webapps\\poi\\docs\\testRead.xls"));
           // readExcel(new File("D:\\test.xls"));
           /*
               String docsPath = request.getSession(true).getServletContext()
                       .getRealPath("docs");
               String fileName = "testRead.xls";
               String filePath = docsPath;
               if (EPlatform.Windows.equals(OSinfo.getOSname())) {
                   filePath = filePath + "\\" + fileName;
               } else {
                   filePath = filePath + "/" + fileName;
               }
               filePath = "E:\\testRead.xls";
               List<List<Object>> list = readExcel(new File(filePath));
               request.setAttribute("list", list);
               RequestDispatcher dispatcher = request
                       .getRequestDispatcher("/read.jsp");
               dispatcher.forward(request, response);
            */
       } catch (IOException e) {
           e.printStackTrace();
       }
   }
}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式