将Excel数据表读取到文本文件 private void btn_Select_Click(object sender, EventArgs e) { openFileDialog1.Filter = "Excel文件|*.xls";//设置打开文件筛选器 openFileDialog1.Title = "选择Excel文件";//设置打开对话框标题 openFileDialog1.Multiselect = false;//设置打开对话框中只能单选 if (openFileDialog1.ShowDialog() == DialogResult.OK)//判断是否选择了文件 { txt_Path.Text = openFileDialog1.FileName;//在文本框中显示Excel文件名 CBoxBind();//对下拉列表进行数据绑定 } } private void btn_Txt_Click(object sender, EventArgs e) { //连接Excel数据库 OleDbConnection olecon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + txt_Path.Text + ";Extended Properties=Excel 8.0"); olecon.Open();//打开数据库连接 OleDbDataAdapter oledbda = new OleDbDataAdapter("select * from [" + cbox_SheetName.Text + "$]", olecon);//从工作表中查询数据 DataSet myds = new DataSet();//实例化数据集对象 oledbda.Fill(myds);//填充数据集 StreamWriter SWriter = new StreamWriter(cbox_SheetName.Text + ".txt", false, Encoding.Default);//实例化写入流对象 string P_str_Content = "";//存储读取的内容 for (int i = 0; i < myds.Tables[0].Rows.Count; i++)//遍历数据集中表的行数 { for (int j = 0; j < myds.Tables[0].Columns.Count; j++)//遍历数据集中表的列数 { P_str_Content += myds.Tables[0].Rows[i][j].ToString() + " ";//记录当前遍历到的内容 } P_str_Content += Environment.NewLine;//字符串换行 } SWriter.Write(P_str_Content);//先文本文件中写入内容 SWriter.Close();//关闭写入流对象 SWriter.Dispose();//释放写入流所占用的资源 MessageBox.Show("已经将" + cbox_SheetName.Text + "工作表中的数据成功写入到了文本文件中", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void CBoxBind()//对下拉列表进行数据绑定 { cbox_SheetName.Items.Clear();//清空下拉列表项 //连接Excel数据库 OleDbConnection olecon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + txt_Path.Text + ";Extended Properties=Excel 8.0"); olecon.Open();//打开数据库连接 System.Data.DataTable DTable = olecon.GetSchema("Tables");//实例化表对象 DataTableReader DTReader = new DataTableReader(DTable);//实例化表读取对象 while (DTReader.Read())//循环读取 { string P_str_Name = DTReader["Table_Name"].ToString().Replace('$', ' ').Trim();//记录工作表名称 if (!cbox_SheetName.Items.Contains(P_str_Name))//判断下拉列表中是否已经存在该工作表名称 cbox_SheetName.Items.Add(P_str_Name);//将工作表名添加到下拉列表中 } DTable = null;//清空表对象 DTReader = null;//清空表读取对象 olecon.Close();//关闭数据库连接 cbox_SheetName.SelectedIndex = 0;//设置下拉列表默认选项为第一项 }
简历解析器就是文本解析器,对关键词及其内容进行分拣,由于目标格式变化多样,首先要创建一个通用解析器,通用解析器的解析准确度是衡量解析能力最重要的指标,对于某些不规范或完全不规范的内容,应建立特定解析器进行辅助解析。 这个演示网站的通用解析器完全不行,他们提供的简历范本的解析都是特定解析,也就是根据简历的格式(如:51job、智联招聘等简历格式)写死规则的,一旦格式变化,就失效了。
做过简历管理软件,支持纯文本和html解析,不过简历解析的思路与算法不过不能说,测试了一下你提供的那个解析器,解析准确率比我的解析器差多了
110,536
社区成员
642,578
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧