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中的信息,并保存到数据库的主要内容,如果未能解决你的问题,请参考以下文章

使用列名从excel中读取数据并插入到C#中的SQL表中

C# 如何读取xml文件并输出信息到label上

C#里使用ExcelDataReader读取EXCEL文件的简单方法

C#里使用ExcelDataReader读取EXCEL文件的简单方法

c# 解决读取Excel混合文本类型,数据读取失败的解决方法

读取json数据并嵌套读取值,保存到excel中。将句子进行jieba分词,保存到excel中