C#里怎么获取excel中每个单元格的名称和值?

有一个excel表,每格都有自己的名称和值,怎么用c#把里面的内容写入sqlserver中?库里有2列,一列是名称一列是值能不能附上代码谢谢....... 有一个excel表,每格都有自己的名称和值,怎么用c#把里面的内容写入sqlserver中?
库里有2列,一列是名称一列是值
能不能附上代码谢谢....
展开
 我来答
chenhou200807
2013-05-08 · 超过15用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:35.9万
展开全部
建议使用引用microsoft.office.core
microsoft.office.interop.excel
下面是我写的范例。希望能帮到你。

public string inputExcel(string Path)
{
Excel.Application excel = new Excel.ApplicationClass();

object oMissing = Missing.Value;

excel.Workbooks.Open(Path, oMissing, true, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);

Excel.Workbook workbook = excel.Workbooks[1];

Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];

int rowCount = worksheet.UsedRange.Rows.Count;

int colCount = worksheet.UsedRange.Columns.Count;

Excel.Range range1;

DataTable dt = new DataTable();

for (int i = 0; i < colCount; i++)
{

range1 = worksheet.get_Range(worksheet.Cells[1, i + 1], worksheet.Cells[1, i + 1]);

dt.Columns.Add(range1.Value2.ToString());

}

for (int j = 1; j < rowCount; j++)
{
DataRow dr = dt.NewRow();

for (int i = 0; i < colCount; i++)
{

range1 = worksheet.get_Range(worksheet.Cells[j + 1, i + 1], worksheet.Cells[j + 1, i + 1]);

dr[i] = range1.Value2.ToString();

}

dt.Rows.Add(dr);

}

excel.Quit();

string jieguo = "导入学号" + dt.Rows.Count + "个";

if (dt.Rows.Count > 0)
{
if (dt.Columns.Contains("学号"))
{
SqlParameter[] sfzh_param = new SqlParameter[1];
SqlConnection conn_bidui = new SqlConnection(conn_guanli.conn_bidui);
sql_tongyong ty = new sql_tongyong();

ty.conn_open(conn_bidui);

for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i]["学号"].ToString().Trim().Length != 17 && dt.Rows[i]["学号"].ToString().Trim().Length != 20)
{
continue;
}
else
{
sfzh_param[0] = new SqlParameter("@SFZH", SqlDbType.VarChar, 18);

sfzh_param[0].Value = dt.Rows[i]["学号"].ToString().Trim().Replace("SF", "");

ty.db_insert_update_delete_NR(conn_bidui, "linishi_SFZH_insert", sfzh_param);

}
}

ty.conn_close(conn_bidui);

}
else
{
jieguo = "不包含学号字段!";
}

}

File.Delete(Path);

return jieguo;

}
追问
请问这里哪句是获取单元格名称的呢?
追答
for (int i = 0; i < colCount; i++)
{

range1 = worksheet.get_Range(worksheet.Cells[1, i + 1], worksheet.Cells[1, i + 1]);

dt.Columns.Add(range1.Value2.ToString());

}
循环获取字段名称
下面那段是循环获取字段的值
壊囝孩
2013-05-06 · TA获得超过688个赞
知道小有建树答主
回答量:868
采纳率:0%
帮助的人:139万
展开全部
用APOSE.CELLS组件,首先把excel中的数据读取出来,然后在用泛型集合遍历填充到数据库中
追问
我现在在用aspose.cells组件,从excel中如何把name也取出来?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
庸主灬拜军师
2013-05-06 · TA获得超过319个赞
知道小有建树答主
回答量:539
采纳率:0%
帮助的人:263万
展开全部
这个得用外部控件 百度一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
clack666
2013-05-06
知道答主
回答量:37
采纳率:0%
帮助的人:13.3万
展开全部
NPOI 这个第三方控件挺好用的 你可以试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式