Excel To SqlServer huaervvhuaer(原作)

转载 2006年05月25日 14:52:00

uses
  ComObj, Grids, Db, DBTables, ADODB;


procedure load(rowCount,colCount:integer; fileName:String; var grid:TStringGrid);
//从Excel中读取数据到 Grid
var
  v:variant;
  i,j:integer;
begin
  grid.RowCount:=rowCount;
  grid.ColCount:=colCount;
  v:=createoleobject('Excel.Application');//创建OLE对象
  try
    V.workBooks.Open(fileName);
    for i:=1 to rowCount do
      for j:=1 to colCount do
        grid.Cells[j-1,i-1]:=v.workbooks[1].sheets[1].cells[i,j];
    v.workbooks[1].close;
  finally
    v.quit;
  end
end;

procedure save(tableName:String;grid:TStringGrid);
// 将 Grid 中的数据保存到 SQL Server 数据表中
var
  valuesStr:string;
  i,j:integer;
begin
  if not CreateTable(tableName,grid.ColCount) then
  begin
    showmessage('Error On CreateTable');
    exit;
  end;
  for i:=1 to grid.RowCount-1 do
  begin
    valuesStr:=inttostr(i)+',';
    for j:=0 to grid.ColCount-1 do
      valuesStr:=valuesStr+Grid.Cells[j,i]+',';

    if not insertone(tableName,valuesStr) then
    begin
      showmessage('Error On Row('+inttostr(i)+')');
      exit;
    end;
  end;
  showmessage('数据导入成功');
end;

function insertone(const tableName, ValuesStr: string): boolean;
// 插入一条记录
var
  tmpstr,s:string;
  p:integer;
begin
  result:=true;
  tmpstr:=ValuesStr;
  with query1 do
  begin
    close;
    sql.Clear;
    sql.Add('insert into '+tableName+' values(');
    s:='';
    while tmpstr<>'' do
    begin
      p:=pos(',',tmpstr);
      s:=s+''''+copy(tmpstr,1,p-1)+''',';
      system.Delete(tmpstr,1,p);
    end;
    s:=copy(s,1,length(s)-1);
    sql.Add(s);
    sql.Add(')');
    try
      execsql;
    except
      result:=false;
    end;
  end;
end;

function CreateTable(const tableName:String; aFieldCount: integer): boolean;
// 创建表
var
  tmpstr:string;
  i:integer;
begin
  result:=true;
  tmpstr:='if exists (select * from sysobjects where Name='''
    +tableName+''') drop table '+tableName+' create table '+tableName+'(';

  for i:=1 to aFieldCount do
    tmpstr:=tmpstr+'F'+inttostr(i)+' varchar(50),';
  delete(tmpstr,length(tmpstr),1);
  tmpstr:=tmpstr+')';

  with query1 do
  begin
    close;
    sql.Clear;
    sql.Add(tmpstr);
    try
      execsql;
    except
      result:=false;
    end;
  end;
end;

直接通过ODBC读写Excel表格文件 译者:徐景周(原作:Alexander Mikula)

想要通过ODBC直接读、写Excel表格文件,首先,应确保ODBC中已安装有Excel表格文件的驱动"MICROSOFT EXCEL DRIVER (*.XLS)"。然后,可根据下面步骤进行: ...

在Java中读取Excel文件的内容 原作者:SonyMusic

在Java中读取Excel文件的内容 在这里,我使用的是一个叫Java Excel API的东西,类似的还有jakarta的POI,不过感觉那个 太复杂了点儿。而且jxl对中文的支持相当的好,至少...

Bad version number in .class file (unable to load class com.microsoft.sqlserver.jdbc.SQLServerDriver

数据库:MSSQL 2005 框架:Struts2 + Hibernate 3.3 + Spring 3.0 使用的数据库jar包:sqljdbc4.jar   错误信息:Error cr...

Sqlserver2005 peer-to-peer事务复制(对等拓扑复制)的Bug及其配置简述

Sqlserver2005 peer-to-peer事务复制(对等拓扑复制)的Bug及其配置简述Sqlserver2009-08-01 17:32:22阅读55评论0  字号:大中小 订阅主要就是几点...
  • zhongqi
  • zhongqi
  • 2011年03月09日 22:40
  • 671

这里和大家分享一下SqlServer 分区遇到的问题 How to Remove (Undo) Table Partitioning

The Problem - We have two partitioned tables (PartitionTable1 & PartitionTable2) split across four f...

SQLServer 中 错误 Error converting data type varchar to datetime 的解决方法

SQLServer 中 错误 “Error converting data type varchar to datetime” 可能是最常见的一个错误了, 通常这是由于输入日期字符串varchar 与...

How to send email using sqlserver

This is from CodeProject:http://www.codeproject.com/Articles/846204/How-To-Send-Mail-Using-SQL-Serve...

sqlserver to XML

  • 2008年04月28日 15:25
  • 14KB
  • 下载

Asp.net Connection To Ms SqlServer

  • 2007年12月30日 23:04
  • 4.1MB
  • 下载

如何利用SQL查询语句从SQLSERVER数据库中导入导出EXCEL表格

平常从SQLSERVER中进行导入导出时,我们利用SQLSERVER中自带的DTS转换工具即可,很方便。但有些特殊的用法需要用语句进行导入导出,工作中碰到这种情况,查了些资料,下面详细介绍: 一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Excel To SqlServer huaervvhuaer(原作)
举报原因:
原因补充:

(最多只允许输入30个字)