两种方式:一种是手动,一种是代码或宏
一:手动导出时,右键单击要导出的表\查询\窗体等对象,选择导出,然后选择导出格式为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_dsstring 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导入数据库多个表中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)