private void button4_Click(object sender, EventArgs e)
{
string filepath= @"D:\temp1.xlsx";
FileStream filestream = new FileStream(filepath, FileMode.OpenOrCreate,FileAccess.ReadWrite);
//filestream.Position=0;
XSSFWorkbook workbook = new XSSFWorkbook(filestream);
int sheetcount = workbook.Count;
if (sheetcount > 0)
{
var sheet = workbook.GetSheetAt(0);
for (int i = 1; i <= sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
string tempname = Dqml(row,0);
string tempmm = Dqml(row,1);
sjvlj(tempname,tempmm);
}
}
}
void sjvlj(string a,string b)
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=(local);Initial Catalog=MF;User ID=sa;Pwd=P@ssw0rd";
conn.Open();
SqlTransaction sqltran = conn.BeginTransaction();
// textBox1.Text = a;
string sqlstring = string.Format("insert into table_4(yhm,mm) values('{0}','{1}')", a,b);
SqlCommand comm = new SqlCommand(sqlstring,conn);
comm.Transaction = sqltran;
int p = comm.ExecuteNonQuery();
sqltran.Commit();
comm.Dispose();
comm.Clone();
conn.Dispose();
conn.Close();
}
string Dqml(IRow row, int l)
{
if (row != null)
{
ICell cell = row.GetCell(l);
if (cell != null)
{
if (cell.CellType == CellType.String)
return cell.StringCellValue.Trim();
}
if (cell.CellType == CellType.Numeric)
{
return cell.NumericCellValue.ToString().Trim();
}
return cell.StringCellValue.Trim();
}
return string.Empty;
}
这里可以直接在vs程序中引入Spire.Xls.dll这一个dll程序集文件就可以实现数据的导入导出了。可以直接在NuGet中搜索安装,以下是导入excel数据到datatable的代码方法:
追问//创建Workbook对象并加载Excel文档
Workbook workbook = new Workbook();workbook.LoadFromFile(@"F:\ExportData.xlsx" ,ExcelVersion.Version2013);
//获取第一张
sheetWorksheet sheet = workbook.Worksheets[0];
//设置range范围
CellRange range = sheet.Range[sheet.FirstRow, sheet.FirstColumn, sheet.LastRow, sheet.LastColumn];
//输出数据, 同时输出列名以及公式值
DataTable dt = sheet.ExportDataTable(range, true, true);
这个东西没有用过能不能给我一个完整的例子?我照葫芦画瓢一下。看嫩不嫩满足需求。
你好!能不能把后面的代码也给我?这样做数据库表是顺序和Excel表里的顺序就一致了吗?我的错在哪里?
本回答被网友采纳你判断是否乱序是根据哪个字段,此字段是否自动增长?
如果没有自动增长字段,查询时候也没指定order by,那么sql本身也没保证顺序,属于正常现象
你在单个insert周围用了事务,没什么意义
我原来的Excel表里面是有日期,是连续的。但是按照我的方式导入到数据库中日期就不连续了。
追答那你select的时候oder by date即可