请问如何在ASP.NET(C#)中实现Foxmail和Outlook的CSV地址薄导入功能?

时间:2022-08-31 16:03:33
请问如何在ASP.NET(C#)中实现Foxmail和Outlook的CSV地址薄导入功能?
最主要是实现映射输入字段。
请给出相关例子或代码,谢谢!

34 个解决方案

#1


他们不是自带的有嘛?你自己写?你在页面上没有权限操作

#2


从Foxmail OR Outlook 中导出CSV,
上传到服务器上
从服务器上用程序导入

#3


CSV使用顿号(;)做为分隔符,楼主使用记事本打开即可查看它的内部信息。

#4


TO:net_lover(孟子E章)
------------------------------
我的意思是说在我的ASP.NET(C#)项目中做一个:将FoxMail导出的CSV文件导入到我的ASP.NET(C#)项目中的功能,有类似FoxMail中的映射功能,可以选择相应的CSV文件中的标题映射为我指定的字段(因为FoxMail的字段和我的设计不同),并且可以选择导入的字段。最后将设置好的数据导入我ASP.NET项目的MS SQL数据库中。

#5


MARK

#6


csv文件是txt格式的文件,除了第一行是字段外,其它都是数据,你可以不管字段,就当成已经映射过来的。
参见
http://blog.csdn.net/net_lover/archive/2005/06/13/393579.aspx

#7


也可以StreamReader读取出来,一行一行分析啊

#8


net_lover(孟子E章)
---------------------------------------

非常感谢,不过我现在的难题不在于数据绑定,而是在如何设置映射和导入数据的处理。
例:
Foxmail的字段为A,B
而我的数据字段可能为A,AB,AC,AD,AE...
我需要通过设置导入映射将Foxmail的数据列导入我的表中的对应列中(要能通过映射自动识别,没有的列用空值填充)。

#9


这个的主要难度在于,Foxmail导出的CSV文件的字段数不能确定,因为是用户选择的,有多有少,而且和我的表中的列名不同也不对应,所以要用到字段映射来转换。

#10


mark

#11


请大家帮忙看看,谢谢!

#12


字段数不能确定?Foxmail导出时,如果没有选择的字段应该仍然会以;号分隔吧?楼主检查一下看看

否则真是无法确定了

#13


to:kssys() 
--------------------------
foxmail导出时没有选中的字段是不会出现在CSV文件中的。

#14


mark

#15


不确定的字段数量,那么foxmail应该也无法判断用户选择了那个了段才对啊

疑惑中

#16


很多软件的导出都是任意列的,这时候你只能先根据CSV创建表(例如DataSet),然后根据CSV表头一列一列复制到你的目标表。你想要自动表头匹配?应该没有这回事。

#17


导出的顺序应该是固定吧。
你导出一个看看格式

#18



private void btnExport1_Click(object sender, System.EventArgs e)
{
// 导出所有数据
try
{
// 获取要导出的数据库
DataTable dtEmployee = ((DataSet) Session["dsEmployee"]).Tables["Employee"].Copy();

// 将所有数据导出到 CSV文件
RKLib.ExportData.Export objExport = new RKLib.ExportData.Export("Web");
objExport.ExportDetails(dtEmployee, Export.ExportFormat.CSV, "EmployeesInfo1.csv");
}
catch(Exception Ex)
{
lblError.Text = Ex.Message;
}
}

#19


在www.phei.com.cn上有一本ASP.net网络编程的代码, 你可以下载下来看看。在第18章。

#20


楼上的各位可能都没有试过Foxmail的那个字段映射,正因为Foxmail也不能确定用户的CSV文件的字段是否对应它本身的格式,所以才有了字段映射这个功能,这个功能是让用户将CSV文件中的“字段”映射到Foxmail的对应的字段,然后才导入数据的。

#21


试试在Foxmail中导入Outlook导出的CSV文件就明白这个功能了。

#22


我有个想法,就是将MS SQL中地址薄的字段放入一个临时表中,通过用户的映射设置,组织insert into table select ...语句。


希望看到高效的解决方法。
:)

#23


mark

#24


顶上去。

#25


continue...

#26


问题还没有解决,大家帮帮忙啊。

#27


help

#28


看了一下CSV文件。第一行会有列名,做个映射即可。

根据CSV列名,来判断应插入哪些信息。楼主要分析一下FoxMail的列名。

#29


很多支持导入/导出/同步的软件都有映射(Mapping)这个功能,甚至是有复杂规则的Mapping,例如Full Name自动分给为两部分和First Name, Last Name进行Mapping。

我绝对对于Mapping,根据Mapping条件生成处理单行数据的SQL然后逐行数据处理会比较好,要整个表一次性实现Mapping会比较难。

#30


看了一下CSV文件。第一行会有列名,做个映射即可。
---------------------------------------------------------
我就是不会做这个映射,能给个例子吗?

#31


up

#32


再翻出来看看。

#33


招.net开发工程师,有兴趣的可以投递简历至: 
datehr@126.com

#34


准备结贴了,最后求解。

#1


他们不是自带的有嘛?你自己写?你在页面上没有权限操作

#2


从Foxmail OR Outlook 中导出CSV,
上传到服务器上
从服务器上用程序导入

#3


CSV使用顿号(;)做为分隔符,楼主使用记事本打开即可查看它的内部信息。

#4


TO:net_lover(孟子E章)
------------------------------
我的意思是说在我的ASP.NET(C#)项目中做一个:将FoxMail导出的CSV文件导入到我的ASP.NET(C#)项目中的功能,有类似FoxMail中的映射功能,可以选择相应的CSV文件中的标题映射为我指定的字段(因为FoxMail的字段和我的设计不同),并且可以选择导入的字段。最后将设置好的数据导入我ASP.NET项目的MS SQL数据库中。

#5


MARK

#6


csv文件是txt格式的文件,除了第一行是字段外,其它都是数据,你可以不管字段,就当成已经映射过来的。
参见
http://blog.csdn.net/net_lover/archive/2005/06/13/393579.aspx

#7


也可以StreamReader读取出来,一行一行分析啊

#8


net_lover(孟子E章)
---------------------------------------

非常感谢,不过我现在的难题不在于数据绑定,而是在如何设置映射和导入数据的处理。
例:
Foxmail的字段为A,B
而我的数据字段可能为A,AB,AC,AD,AE...
我需要通过设置导入映射将Foxmail的数据列导入我的表中的对应列中(要能通过映射自动识别,没有的列用空值填充)。

#9


这个的主要难度在于,Foxmail导出的CSV文件的字段数不能确定,因为是用户选择的,有多有少,而且和我的表中的列名不同也不对应,所以要用到字段映射来转换。

#10


mark

#11


请大家帮忙看看,谢谢!

#12


字段数不能确定?Foxmail导出时,如果没有选择的字段应该仍然会以;号分隔吧?楼主检查一下看看

否则真是无法确定了

#13


to:kssys() 
--------------------------
foxmail导出时没有选中的字段是不会出现在CSV文件中的。

#14


mark

#15


不确定的字段数量,那么foxmail应该也无法判断用户选择了那个了段才对啊

疑惑中

#16


很多软件的导出都是任意列的,这时候你只能先根据CSV创建表(例如DataSet),然后根据CSV表头一列一列复制到你的目标表。你想要自动表头匹配?应该没有这回事。

#17


导出的顺序应该是固定吧。
你导出一个看看格式

#18



private void btnExport1_Click(object sender, System.EventArgs e)
{
// 导出所有数据
try
{
// 获取要导出的数据库
DataTable dtEmployee = ((DataSet) Session["dsEmployee"]).Tables["Employee"].Copy();

// 将所有数据导出到 CSV文件
RKLib.ExportData.Export objExport = new RKLib.ExportData.Export("Web");
objExport.ExportDetails(dtEmployee, Export.ExportFormat.CSV, "EmployeesInfo1.csv");
}
catch(Exception Ex)
{
lblError.Text = Ex.Message;
}
}

#19


在www.phei.com.cn上有一本ASP.net网络编程的代码, 你可以下载下来看看。在第18章。

#20


楼上的各位可能都没有试过Foxmail的那个字段映射,正因为Foxmail也不能确定用户的CSV文件的字段是否对应它本身的格式,所以才有了字段映射这个功能,这个功能是让用户将CSV文件中的“字段”映射到Foxmail的对应的字段,然后才导入数据的。

#21


试试在Foxmail中导入Outlook导出的CSV文件就明白这个功能了。

#22


我有个想法,就是将MS SQL中地址薄的字段放入一个临时表中,通过用户的映射设置,组织insert into table select ...语句。


希望看到高效的解决方法。
:)

#23


mark

#24


顶上去。

#25


continue...

#26


问题还没有解决,大家帮帮忙啊。

#27


help

#28


看了一下CSV文件。第一行会有列名,做个映射即可。

根据CSV列名,来判断应插入哪些信息。楼主要分析一下FoxMail的列名。

#29


很多支持导入/导出/同步的软件都有映射(Mapping)这个功能,甚至是有复杂规则的Mapping,例如Full Name自动分给为两部分和First Name, Last Name进行Mapping。

我绝对对于Mapping,根据Mapping条件生成处理单行数据的SQL然后逐行数据处理会比较好,要整个表一次性实现Mapping会比较难。

#30


看了一下CSV文件。第一行会有列名,做个映射即可。
---------------------------------------------------------
我就是不会做这个映射,能给个例子吗?

#31


up

#32


再翻出来看看。

#33


招.net开发工程师,有兴趣的可以投递简历至: 
datehr@126.com

#34


准备结贴了,最后求解。