C#读取EXCEL中的信息,并保存到数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#读取EXCEL中的信息,并保存到数据库相关的知识,希望对你有一定的参考价值。
如题:我需要做一个C#读取固定格式的Excel文件,并将Excel中的信息存到数据库中的代码,SQLServer的数据库。Excel的列,对应数据存到数据库中对应的列中,请高手指教,谢谢。
其实这个就跟C#连接SQL读取表中的数据是一样的,只是在这数据库为Excel而已,通过连接字符串:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=文件路径;Extended Properties=Excel 8.0
连接Excel即可,然后通过SQL语句:(类似)select * from [Sheet1$] 把数据取出来即可,然后按照以前自己连接SQL数据库的方式把相应的字段存储起来即可。
需要留意的时03和07的连接字符串不一样,以上是03版的Excel连接方式
Excel 2007:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=文件路径;Extended Properties=Excel 12.0
如有什么不明白的 可以留言 ^_^ 参考技术A protected void Button3_Click(object sender, System.EventArgs e)
//选择并打开excel表
Excel.Application objApp = new Excel.Application();
Excel.Workbook objWorkbook = default(Excel.Workbook);
Excel.Worksheet objWorksheet = default(Excel.Worksheet);
objApp.Visible = true;
objWorkbook = objApp.Workbooks.Open(".......xls");
objWorksheet = objWorkbook.Worksheets("sheet1");
// 建立数据库连接。
System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\数据库名(注意路径与后缀);Integrated Security=True;Connect Timeout=30;User Instance=True");
con.Open();
Int32 i = default(Int32);
i = 1;
while (!(string.IsNullOrEmpty(Strings.Trim(objWorksheet.Cells(1 + i, 1).value))))
System.Data.SqlClient.SqlCommand updateCMD = new System.Data.SqlClient.SqlCommand("INSERT INTO 表名 (。。。列名) " + "VALUES (@。。。列名)", con);
System.Data.SqlClient.SqlParameter 列名Parameter = new SqlParameter("@列名", System.Data.SqlDbType.NVarChar, 11);//数据库中的数据类型
if (string.IsNullOrEmpty(Strings.Trim(objWorksheet.Cells(1 + i, 1).Value)))
列名Parameter.Value = "";
else
列名Parameter.Value = Strings.Trim(objWorksheet.Cells(1 + i, 1).Value);//对应的单元格
updateCMD.Parameters.Add(列名Parameter);
。。。。。。
updateCMD.ExecuteNonQuery();
i = i + 1;
con.Close();
参考技术B 需要源码吗?需要回话,留个Email。
读取json数据并嵌套读取值,保存到excel中。将句子进行jieba分词,保存到excel中
1.数据样式
{"source": "PMC",
"date": "20140719",
"key": "pmc.key",
"infons": {},
"documents": [{"id": "555756", "infons": {},
"passages": [{"offset": 0,
"infons": {"name_3": "sunames:Seppo A",
"text": "Gluten-free diet may alleviate depressive and behavioural symptoms in adolescents with coeliac disease: a prospective follow-up case-series study", "sentences": [], "annotations": [{"id": "MIC1",
"infons": {"type": "MeSH_Indexing_Chemical", "entry_term": "Amino Acids"},
"text": "", "locations": []},
{"id": "MIC2",
"infons": {"type":
2.代码
主要提取text 和entry_term并且保存到数据库中,其中
import jieba
import json
import jsonpath
file_ = open('555756_v1.json')
text_ = json.load(file_ )
texteach = jsonpath.jsonpath(text_,"$.documents[0].passages[0].text") #读取句子内容
lenn_entry = jsonpath.jsonpath(text_,"$.documents[2].passages")
eachentry = jsonpath.jsonpath(text_,"$.documents[0].passages[0].annotations[0].infons.entry_term")
print("结果:",len(text_ ['documents'][0]['passages']))#输出实体的个数,便于遍历
-----------------------------------------------------------------------------------
import json
import jsonpath
import xlwt
file_ = open('555756_v1.json')
text_ = json.load(file_ )
# 创建一个workbook 设置编码
workbook = xlwt.Workbook(encoding = 'utf-8')
worksheet = workbook.add_sheet("my1")
eachentry1 = jsonpath.jsonpath(text_,"$.documents[0].passages[0].annotations[0].infons.entry_term")
for i in range(len(text_ ['documents'][0]['passages'])):
#文本
w="$.documents[0].passages["+str(i)+"].text"
texteach = jsonpath.jsonpath(text_,w)
#实体
m="$.documents[0].passages["+str(i)+"].annotations[0].infons.entry_term"
eachentry = jsonpath.jsonpath(text_,m)
worksheet.write(i, 0,eachentry) # 第i行0列
worksheet.write(i, 1, texteach) # 第i行1列
print("结果:ok")
# 保存
workbook.save('Excel_test.xls')
3.结巴分词
cut_text = jieba.cut("Gluten-free diet may alleviate depressive and behavioural symptoms in adolescents with coeliac disease: a prospective follow-up case-series study")
result = " ".join(cut_text)
#print("句子:Gluten-free diet may alleviate depressive and behavioural symptoms in adolescents with coeliac disease: a prospective follow-up case-series study")
#print("结果:",result)
以上是关于C#读取EXCEL中的信息,并保存到数据库的主要内容,如果未能解决你的问题,请参考以下文章
C#里使用ExcelDataReader读取EXCEL文件的简单方法
C#里使用ExcelDataReader读取EXCEL文件的简单方法