0

我的问题是:

Excel文件DATA是这样的:

id 类 单元测试 1 单元测试 2
                      英语数学科学英语数学科学
1 va 20 15 22 16 18 ab
2 vb 14 ab 20 19 17 20

数据库中的表是这样的:

id 类主题标记 test_category
1 VA ENG 20 UT-1
1 VA ENG 16 UT-2
1 VA 数学 15 UT-1
1 VA 数学 18 UT-2
1 va sci 22 UT-1
1 va sci null UT-2
2 vb 英语 14 UT-1
2 vb 英语 19 UT-2
2 vb 数学空 UT-1
2 VB 数学 17 UT-2
2 vb sci 20 UT-1
2 vb sci 20 UT-2

在数据库中的列必须与显示的相同。但我需要的是插入整个记录,如 excel 文件中所示。Excel 文件有 ab 单元格。这里数据库插入空值。

在 ASP 项目的 ON 按钮单击事件中,excel 文件中存在的所有记录都应插入数据库中。

我想在 aspx.cs 中执行此操作(实现此目的的 C# 代码)。

4

1 回答 1

0

您可以使用以下方法将另一个 Excel 工作表中的 Excel 数据转换为数据库格式:

(假设:数据在 Sheet1 的 A 到 H 列中,第 1 行是 ID、类、单元测试、第 2 行 eng、math... 和第 3 行+数据:

在新工作表中,使用以下公式(从第 2 行开始)

  • Col A ("Temp col"):=IF(ISTEXT(A1),1,IF(A1=6,1,A1+1))
  • B栏(“id”):=IF(ISTEXT(B1),1,IF(A1=1,B1+1,B1))
  • Col C(“班级”)=INDEX(Sheet1!$B:B$,B2+1)
  • Col D(“主题”)=INDEX(Sheet1!$C$2:$H$2,1,A2)
  • Col F(“标记”)=INDEX(Sheet1!$C:H$,B2+1,A2)
  • Col G(“测试类别”)=IF(A2<4,"UT-1","UT-2")

现在您只需复制原始数据行数的六倍的第 2 行。- 然后导入此表。

于 2013-01-25T12:27:49.483 回答