如何将Excel表格中的数据导入到sql数据库里已经存在的表里,注意是已经建好的

如何将Excel表格中的数据导入到sql数据库里已经存在的表里,注意是已经建好的,第1张

insert into tablename

SELECT

FROM OpenDataSource( 'MicrosoftJetOLEDB40',

'Data Source="c:\temp1xls";User ID=;Password=;Extended properties=Excel 50')[Sheet1$]

注意如果两边数据类型不一致需要用cast或convert转换数据类型。

这是在查询分析器中执行的直接导入的脚本

sql2000直接执行即可,sql2005以上的需把外围配置打开(sql菜单里就有)

insert into tablename --这里输入你要导入的表

SELECT --这里可以设置需要的execl中的字段

FROM OpenDataSource( 'MicrosoftJetOLEDB40',--这个是打开数据源,不用改

'Data Source="c:\temp1xls";--这里设置你的execl存放的路径和文件名

User ID=;Password=;Extended properties=Excel 50')--这里也不用改,标准格式

[Sheet1$]--这里设置execl的工作表名,一般没改过的话execl中的工作表默认三个

--Sheet1,Sheet2,Sheet3,注意别把$忘写了。

如果两个表结构完全一样的,用insert into data2table2 select from data1table1

如果结构不一样或者你要指定字段,用insert into data2table2(字段1,字段2,字段) select 字段j,字段k,字段m from data1table1

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

public class ReadExcel {

   /

    对外提供读取excel 的方法

    /

   public static List<List<Object>> readExcel(File file) throws IOException {

       String fileName = filegetName();

       String extension = fileNamelastIndexOf("") == -1 "" : fileName

               substring(fileNamelastIndexOf("") + 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 = hwbgetSheetAt(0);

       Object value = null;

       HSSFRow row = null;

       HSSFCell cell = null;

       int counter = 0;

       for (int i = sheetgetFirstRowNum(); counter < sheet

               getPhysicalNumberOfRows(); i++) {

           row = sheetgetRow(i);

           if (row == null) {

               continue;

           } else {

               counter++;

           }

           List<Object> linked = new LinkedList<Object>();

           for (int j = rowgetFirstCellNum(); j <= rowgetLastCellNum(); j++) {

               cell = rowgetCell(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("000");// 格式化数字

               switch (cellgetCellType()) {

               case XSSFCellCELL_TYPE_STRING:

               //  Systemoutprintln(i + "行" + j + " 列 is String type");

                   value = cellgetStringCellValue();

                   break;

               case XSSFCellCELL_TYPE_NUMERIC:

                   /Systemoutprintln(i + "行" + j

                           + " 列 is Number type ; DateFormt:"

                           + cellgetCellStyle()getDataFormatString());/

                   if ("@"equals(cellgetCellStyle()getDataFormatString())) {

                       value = dfformat(cellgetNumericCellValue());

                   } else if ("General"equals(cellgetCellStyle()

                           getDataFormatString())) {

                       value = nfformat(cellgetNumericCellValue());

                   } else {

                       value = sdfformat(HSSFDateUtilgetJavaDate(cell

                               getNumericCellValue()));

                   }

                   break;

               case XSSFCellCELL_TYPE_BOOLEAN:

               //  Systemoutprintln(i + "行" + j + " 列 is Boolean type");

                   value = cellgetBooleanCellValue();

                   break;

               case XSSFCellCELL_TYPE_BLANK:

               //  Systemoutprintln(i + "行" + j + " 列 is Blank type");

                   value = "";

                   break;

               default:

               //  Systemoutprintln(i + "行" + j + " 列 is default type");

                   value = celltoString();

               }

               if (value == null || ""equals(value)) {

                   continue;

               }

               linkedadd(value);

           }

           listadd(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 = xwbgetSheetAt(0);

       Object value = null;

       XSSFRow row = null;

       XSSFCell cell = null;

       int counter = 0;

       for (int i = sheetgetFirstRowNum(); counter < sheet

               getPhysicalNumberOfRows(); i++) {

           row = sheetgetRow(i);

           if (row == null) {

               continue;

           } else {

               counter++;

           }

           List<Object> linked = new LinkedList<Object>();

           for (int j = rowgetFirstCellNum(); j <= rowgetLastCellNum(); j++) {

               cell = rowgetCell(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("000");// 格式化数字

               switch (cellgetCellType()) {

               case XSSFCellCELL_TYPE_STRING:

                   Systemoutprintln(i + "行" + j + " 列 is String type");

                   value = cellgetStringCellValue();

                   break;

               case XSSFCellCELL_TYPE_NUMERIC:

               /  Systemoutprintln(i + "行" + j

                           + " 列 is Number type ; DateFormt:"

                           + cellgetCellStyle()getDataFormatString());/

                   if ("@"equals(cellgetCellStyle()getDataFormatString())) {

                       value = dfformat(cellgetNumericCellValue());

                   } else if ("General"equals(cellgetCellStyle()

                           getDataFormatString())) {

                       value = nfformat(cellgetNumericCellValue());

                   } else {

                       value = sdfformat(HSSFDateUtilgetJavaDate(cell

                               getNumericCellValue()));

                   }

                   break;

               case XSSFCellCELL_TYPE_BOOLEAN:

           //      Systemoutprintln(i + "行" + j + " 列 is Boolean type");

                   value = cellgetBooleanCellValue();

                   break;

               case XSSFCellCELL_TYPE_BLANK:

               //  Systemoutprintln(i + "行" + j + " 列 is Blank type");

                   value = "";

                   break;

               default:

               //  Systemoutprintln(i + "行" + j + " 列 is default type");

                   value = celltoString();

               }

               if (value == null || ""equals(value)) {

                   continue;

               }

               linkedadd(value);

           }

           listadd(linked);

       }

       return list;

   }

   public static void main(String[] args) {

       try {

           readExcel(new File("D:\\Java\\apache-tomcat-8026\\webapps\\poi\\docs\\testReadxls"));

           // readExcel(new File("D:\\testxls"));

           /

               String docsPath = requestgetSession(true)getServletContext()

                       getRealPath("docs");

               String fileName = "testReadxls";

               String filePath = docsPath;

               if (EPlatformWindowsequals(OSinfogetOSname())) {

                   filePath = filePath + "\\" + fileName;

               } else {

                   filePath = filePath + "/" + fileName;

               }

               filePath = "E:\\testReadxls";

               List<List<Object>> list = readExcel(new File(filePath));

               requestsetAttribute("list", list);

               RequestDispatcher dispatcher = request

                       getRequestDispatcher("/readjsp");

               dispatcherforward(request, response);

            /

       } catch (IOException e) {

           eprintStackTrace();

       }

   }

}

用命令 show variables like "%char%" 看你的 character_set_system 这一项是什么字符集,然后在mycnf中把default-character-set = 这个字符集 就可以了,,,不过以前的乱码还是照样乱,以后的就可以显示了。。

有些秘密是男人永远不会说的,所以就不要再问了,因为再问,他们给的答案也不会是真的!

1、男人很容易喜欢一个女人,却不轻易深爱一个女人。

2、男人在感情的王国里,绝对是个昏君。女人只要肯奉承,他什么都答应。

3、男人普遍喜欢外表温柔的女子,宁愿把精力花在事业或其他地方,也不愿全用来征服女人。

4、男人都不太重视对自己太好的女人。

5、男人都怕女人死缠烂打,但喜欢用同样的方式对付没追上的女人。

6、男人的梦想之一,是拥有可以超越友谊界限的红颜知己。

7、男人会以很理性的态度取舍爱情,就算他感性上很爱一个人,但当他清楚她并非一个好妻子时,他会放弃她,另找合适家居生活的那一个。男人认为恋爱和结婚是两回事,很多时候,他拖延结婚,根本原因就是他认为身边的女人不是想像中的好妻子。

8、男人对妻子的要求,可能比对恋人更低——在外型上,在性格上则更高。

9、懂得欣赏聪明女人的男人不多,和她们在一起,男人总觉得缺乏安全感受。

10、当有喜欢的女人在场时,男人会有如下表现:话多;显得聪明些;比平日慷慨;会把话题扯到得意成就上;会刻意显露平时少见的好心肠;多说一些自以为好笑的笑话引大家发笑。

11、一个男人同时是大男人和小男人的化身。大男人的他,希望女人完全迁就他,令他放心;小男人的他,意识到自己懦弱无能的一面,犹豫不决。说穿了,他们很多都是忌妒心重的小器鬼,又像孩子般容易被哄骗。

12、男人追求女人的时候愿意割舍一切自由,追到了越来越感到自由的重要性。

13、男人内心隐藏着狩猎心态,追捕,得到后就要驯服她,让她变成可在家饲养的乖乖动物。

14、男人都有爱当英雄的自大心态,所以很容易爱上向他诉苦的女人。

15、男人希望身边的女人明白:带着同一个女人去所有地方,实在是一件很闷的事(或许女人也这样觉得吧,只是不好意思说),所以和其他女人适度约会,是调剂和放松,完全可以没有其他企图。

16、两性关系中,女人需要男人告诉她,他愿意为她做任何牺牲,男人则需要女人告诉他,他很能干。

17、男人自以为是的多情,常常是女人眼中不折不扣的薄幸。

18、在男人心底,亲热到哪个程度,就是和女人的恋情发展到什么程度。

19、男人每隔一段时间,就有情绪和体力跌到谷底的几天,不想见任何人,躲起来翻翻书,听听音乐,看看影碟或狂打电玩发泄。

20、有过恋爱经验的男人都知道:女人是不能不骗的,类似像:“我会永远爱你”,“我一直都会像现在这样疼你”,“什么时候需要我,一个电话我就立刻赶来”,“我以后再也不会像爱你这样去爱另外一个人”这种话是必须要说但永远坚持不了的“骗话”,谁让女人这么爱听呢!

21、男人遇上旧情人多半会自作多情,以为与自己有过感情的人,内心总会保存一份情,幻想爱过他的女人永远爱他。女人只会美化眼前的男人,男人却不自觉地美化逝去的恋情。所以男人比女人更认同:分手还是朋友。不管是甩人还是被甩,男人多半愿意与前女友继续保持联络。

22、女人在意男友以前的女友,男人却在意女人离开他后找个什么样的男友。如果分手后仍是朋友的,他会时不时批评她的男友。

23、男人跌入爱河,很少问她的过去,不太关心她和哪种男人谈过恋爱,因为男人较注重女人的外表——外表就是现在。

24、男人不愿听心上人的旧恋情,因为一想到自己爱的人之前和其他男人有过肌肤之亲,就难以忍受。

25、面对两个对自己有爱意的人,女人会在徘徊中选择,男人不会为此烦恼——他其实只想同时追上两个人呢!

26、男人爱上一个女人,不一定对她有强烈的亲热冲动,反倒对一些他只是喜欢而不爱的女人,冲动更大些。

27、男人很容易被女人吸引,但他分得出哪种渴求出于性还是爱,大概知道能从她身上得到什么。

28、女人主动示爱,对男人来说,唯一的损失就是缩短了那段朦朦胧胧,若有若无的浪漫日子。

29、男人相信证明自身出色的重要表现之一是:拥有更多的女人。事业上越出色的男人,往往需要更多女人的仰慕和倾心以体现他的超凡脱俗。

30、男人在分手问题上拖泥带水,其实是想把去留的难题丢给女人,减少自己决定带来的内疚感。

31、男人说的“未来”是6个月到1年时间,女人的定义则可以是10年到50年。当男人爱上一个女人,他只会想像如何在短暂的未来与她亲密发展;女人则幻想到恋爱,结婚,生孩子乃至如何白头到老。

32、男人基本是都小器,大方是装出来的。表面上他们不拘小节,其实内心和女人一样,计算得清清楚楚。

33、女性较容易坦白心事,男人恰恰相反。遇到烦恼,他们找个别好友倾诉时,不会说得很完整,总会给自己留最后一点面子。男人的倾诉都是经过包装或刻意切碎的,不让一个人知道全部。这也是女人很难了解男人的原因——他们根本不想被人彻底了解。

34、一个男人可以爱上两个女人,但究竟喜欢哪个多一点,他多半分不清楚。

35、男人看待婚外情比女人实际,因为他有更多机会涉及婚外情,而且他心里明白——花心隐藏在男人的天性中。

36、男人要变心,其实和女人是否注意保持美丽仪表没直接关系,那只是他的借口之一。当他厌倦一个女人,不管她多漂亮,只要是她以外的任何女人,他都觉得比她有吸引力。

37、成熟男人对于崇拜他的少女,抵抗力是相当弱的。

38、男人年纪越大,择偶越随心所欲,乃至不顾他人的任何想法。

39、对许多男人来说,真爱意味着——爱情减去性。换句话,男人只要觉得女人缺乏性的吸引力,就可以一直跟她做单纯的朋友。

40、男人在有寻求亲热的身体冲动那一刻,对异性的要求忽然降低,他会觉得一个平时普通的女人很可爱,甚至很性感。不过等冲动一旦消退,他立刻恢复了习惯的审美判断。

41、男人对女人的爱天天快递查询 >

问:将DB1表A的数据导入到DB2的表B中?

数据库:DB1 表:A

数据库:DB2 表:B

答:分以下几种情况:

数据量很小,表结构一致

1、select from  DB1dboA

2、结果集全选,复制。

3、表B,右键-编辑前200行,然后粘贴即可。

DB1和DB2在同一台服务器

1、INSERT INTO SELECT语句

语句形式为:Insert into DB2dboB(field1,field2) select value1,value2 from DB1dboA

要求目标表B必须存在,由于目标表B已经存在,所以我们除了插入源表A的字段外,还可以插入常量。

2、SELECT INTO FROM语句

语句形式为:SELECT value1, value2 into DB2dboB from DB1dboA

要求目标表B不存在,因为在插入时会自动创建表B,并将A中指定字段数据复制到B中。

DB1和DB2在不同服务器

1、在DB1里面创建连接DB2的对象,

--创建链接服务器 (其中db2server是DB2的ip地址或服务器名)

exec sp_addlinkedserver   'srv_lnk', '', 'SQLOLEDB','db2server'

exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','123456789' 

Go

--数据导入(表B存在) 

Insert into srv_lnkDB2dboB(field1,field2) 

select value1,value2 from DB1dboA 

--数据导入(表B不存在) 

SELECT value1,value2 into srv_lnkDB2dboB 

from DB1dboA

--关闭连接

exec sp_dropserver 'srv_lnk','droplogins'

1、打开企业管理器,打开要导入数据的数据库,在表上按右键,所有任务-->导入数据,d出DTS导入/导出向导,按 下一步 ,

2、选择数据源 Microsoft Excel 97-2000,文件名 选择要导入的xls文件,按 下一步 ,

3、选择目的 用于SQL Server 的Microsoft OLE DB提供程序,服务器选择本地(如果是本地数据库的话,如 VVV),使用SQL Server身份验证,用户名sa,密码为空,数据库选择要导入数据的数据库(如 client),按 下一步 ,

4、选择 用一条查询指定要传输的数据,按 下一步 ,

5、按 查询生成器,在源表列表中,有要导入的xls文件的列,将各列加入到右边的 选中的列 列表中,这一步一定要注意,加入列的顺序一定要与数据库中字段定义的顺序相同,否则将会出错,按 下一步 ,

6、选择要对数据进行排列的顺序,在这一步中选择的列就是在查询语句中 order by 后面所跟的列,按 下一步 ,

7、如果要全部导入,则选择 全部行,按 下一步,

8、则会看到根据前面的 *** 作生成的查询语句,确认无误后,按 下一步,

9、会看到 表/工作表/Excel命名区域 列表,在 目的 列,选择要导入数据的那个表,按 下一步,

10、选择 立即运行,按 下一步,

11、会看到整个 *** 作的摘要,按 完成 即可。

当然,在以上各个步骤中,有的步骤可以有多种选择,你可以根据自己的需要来选择相应的选项。例如,对编程有兴趣的朋友可以在第10步的时候选择保存DTS包,保存成Visual Basic文件,可以看看里面的代码,提高自己的编程水平

以上就是关于如何将Excel表格中的数据导入到sql数据库里已经存在的表里,注意是已经建好的全部的内容,包括:如何将Excel表格中的数据导入到sql数据库里已经存在的表里,注意是已经建好的、SQL数据库,如何把一张表从一个数据库中插入到另外一个数据库如何写语句。。。、怎样把Excel表格导入到SQL数据库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9599138.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存