如何用vc实现把两个数据库的内容导入一个excel中

如何用vc实现把两个数据库的内容导入一个excel中,第1张

两种方式:一种是手动,一种是代码或宏

一:手动导出时,右键单击要导出的表\查询\窗体等对象,选择导出,然后选择导出格式为EXCEL的某版本,再点"导出"按钮即可手动导入时,右键单击空白处,选择导入,在导入类型中选择EXCEL,然后找到自己要导入的文件,按提示一步步做就行了

二:用宏导出,在宏窗口中,选择新建,然后在 *** 作中选择或输入outputto,再选择对象类型\名称,输出地址等,保存宏,然后即可双击宏即可实现导出,导入则要在 *** 作中选择或输入TransferDatabase,其它设置类同,多试几次就知道了至于代码,将宏转换成代码就知道了

先给个思路吧

把要导入的excel放到一个文件夹下

用生成的 excel对象循环读取

如果是多个sheet 也是循环读取

然后做事物 做成SQL

循环插入后 提交事物就可以了

我说的每一行都是一个点

分别百度的话 有很多小例子

但关键字请修改得简练点

用OLEDB进行Excel文件数据读取并返DataSet数据集其几点需要注意:

1连接字符串参数IMEX 值:

0 is Export mode

1 is Import mode

2 is Linked mode (full update capabilities)

IMEX3值:IMEX=2 EXCEL文档同含字符型数字型比第C列3值2数值型 1231字符型 ABC导入

页面报错库显示数值型123字符型ABC则呈现空值IMEX=1述情况发库确呈现 123  ABC

2参数HDR值:

HDR=Yes代表第行标题做数据使用 用HDR=NO则表示第行标题做数据使用系统默认YES

3参数Excel 80

于Excel 97版本都用Excel 80

 #region 获取excel dataset ,即名excel_ds

               string excelFilePath = openFileDialog1FileName;//d文件选取窗口获取EXCEL文件路径

               string strConn = "Provider=MicrosoftJetOLEDB40;Data Source=" + excelFilePath + ";Extended Properties=\"Excel 80;HDR=YES;IMEX=1\"";

               OleDbConnection Oleconn = new OleDbConnection(strConn);

               string strExcel = "";

               OleDbDataAdapter excelCommand = null;

               DataSet excel_ds = new DataSet();

               strExcel = "select  from [sheet1$]";

               try

               {

                   OleconnOpen();

                   excelCommand = new OleDbDataAdapter(strExcel,Oleconn);

                   excelCommandFill(excel_ds,"exdtSource");//dataset

               }

               catch (SystemException ex)

               {

                   MessageBoxShow("导入错:" + ex, "错误信息");

               }

               finally

               {

                   OleconnClose();

                   OleconnDispose();

               }

               #endregion

public static DataSet GetDataSet(string FilePath)

{

string OledbConnectionString = stringFormat("Provider=MicrosoftJetOLEDB40;Data Source='" + FilePath + "';Extended Properties='Excel 80;HDR=Yes;IMEX=1'");

OleDbConnection conn = new OleDbConnection(OledbConnectionString);

ArrayList SheetNameList = new ArrayList();

try

{

if (connState == ConnectionStateClosed)

{

connOpen();

}

DataTable dtExcelSchema = connGetOleDbSchemaTable(OleDbSchemaGuidTables, new object[] { null, null, null, "TABLE" });

string SheetName = "";

for (int i = 0; i < dtExcelSchemaRowsCount; i++)

{

SheetName = dtExcelSchemaRows[i]["TABLE_NAME"]ToString();

SheetNameListAdd(SheetName);

}

}

catch (Exception ex)

{

throw ex;

}

finally

{

connClose();

}

DataSet dsExcel = new DataSet();        try

{

string strSql = "";            for (int i = 0; i < SheetNameListCount; i++)

{

strSql = "select from [" + (string)SheetNameList[i] + "]";

OleDbDataAdapter oleExcelDataAdapter = new OleDbDataAdapter(strSql, conn);

DataTable dtExcel = new DataTable((string)SheetNameList[i]);

oleExcelDataAdapterFill(dtExcel);

dsExcelTablesAdd(dtExcel);

}

return dsExcel;

}

catch (Exception ex)

{

throw ex;

}

}这个方法就是从EXCEL文件读取数据转换为DataSet 下面一段时调用的时候要注意的,写要在服务器端保存一下上传的EXCEL,然后再调用        string filePath = "";

DataSet ds = new DataSet();

if (SystemIOPathGetExtension(FileUpload1FileName) != "xls")

{

ClientScriptRegisterStartupScript(PageGetType(), "", "<script>alter('hao')</script>");

return;

}

else

{

filePath = "D:\\" + FileUpload1FileName;

FileUpload1SaveAs(filePath);

string fileName = FileUpload1FileName;

int start = fileNameIndexOf('');

fileName = fileNameSubstring(0, start);

ds = GetDataSet(filePath);

}

先将全部的Excel文件的名称整理出来

然后通过构造动态SQL来完成导入数据

使用OPENROWSET语句

@FileName和@TableName是两个变量,@FileName是指Excel文件的完整路径文件名,用作数据源,@TableName是表名,在Excel文件中就是工作表名,将这些数据动态生成类似以下的SQL语句就可以完成数据导入

SELECT

INTO @TableName

FROM OPENROWSET('MicrosoftJetOLEDB40',

@FileName;

'';'',@TableName)

具体代码你自己完成吧

以上就是关于如何用vc实现把两个数据库的内容导入一个excel中全部的内容,包括:如何用vc实现把两个数据库的内容导入一个excel中、谁能帮我用循环写一个sql语句,导入多个excel表中的数据到数据库中一个表中、如何实现asp.net中将Excel导入数据库多个表中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存