作者:乔山办公网日期:
返回目录:excel表格制作
很多不定复因素
如数据量大小
以及客户端运制行时知的环境
都要考虑到
简单的导出可以看道
http://hi.baidu.com/bin545/blog/item/acf3013b34019ee414cecb4f.html
Try
Dim xlsConn As String, xlscmd As String, SourcePath As String = Server.MapPath & "~/Excel1.xls"
Dim ExcelConnection As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source='" & SourcePath & "'; Extended Properties=""Excel 12.0 Xml; HDR=Yes""")
xlsConn = ExcelConnection.ConnectionString
Using connection As New OleDbConnection(xlsConn)
connection.Open() : ExcelConnection.Open()
Dim SheetName As String = "Sheet2"
xlscmd = "SELECT [columnA] FROM [" & SheetName & "$]"
Dim command As New OleDbCommand(xlscmd, connection)
' Create DbDataReader to Data Worksheet
Using dr As OleDbDataReader = command.ExecuteReader()
Dim cmd As String = "truncate table " & tableName
SqlCmd = New OleDbCommand(cmd, SqlConn)
SqlCmd.ExecuteNonQuery()
' Bulk Copy to SQL Server
Dim sqlConnectionString As String
sqlConnectionString = "Data Source=" & .SqlConn.DataSource & ";Initial Catalog=" & SqlConn.Database & ";Persist Security Info=True;User ID=sa;Password="
Using bulkCopy As New SqlBulkCopy(sqlConnectionString)
bulkCopy.DestinationTableName = "tableName"
bulkCopy.WriteToServer(dr)
Return True
End Using
End Using
End Using
Catch ex As Exception
Return False
End Try
大致是这e799bee5baa6e58685e5aeb9337样。。。
应该没有直接的接口吧,只能用C#先读取Excel的数据,然后再用SQL语句存入sql数据库
private DataSet GetExcelModel(string Path, string[] sheetNames)
{
DataSet ExcelData = new DataSet();
using (FileStream fs = new FileStream(Server.MapPath(Path), FileMode.OpenOrCreate))
{
IWorkbook workbook = WorkbookFactory.Create(fs);
foreach (var sheetName in sheetNames)
{
ISheet sheet = workbook.GetSheet(sheetName);
DataTable table = new DataTable();
//获取sheet的首行
IRow headerRow = sheet.GetRow(0);
//一行最后一个方格的编号 即总的列数
int cellCount = headerRow.LastCellNum;
///用户生成表头
for (int i = headerRow.FirstCellNum; i < cellCount; i++)
{
DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
table.Columns.Add(column);
}
//最后一列的标号 即总的行7a64e58685e5aeb9363数
//int rowCount = sheet.LastRowNum;
for (int i = (sheet.FirstRowNum + 1); i < sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
DataRow dataRow = table.NewRow();
for (int j = row.FirstCellNum; j < cellCount; j++)
{
if (row.GetCell(j) != null)
dataRow[j] = row.GetCell(j).ToString();
}
table.Rows.Add(dataRow);
}
ExcelData.Tables.Add(table);
}
}
return ExcelData;
}