在ASP.NET中如何把EXCEL中的数据导入到数据库(情况有点特殊)

时间:2021-03-05 07:53:13
在项目中,我需要把预算的EXCEL数据导入到数据库中,但特殊的是:EXCEL中的显示数据都是除以1000的,也就是说,如果某个CELL的值为1920,则显示为1.92。

而我用普通的方法,只能得到显示值,即1.92,不符合要求。

我的方法:
建立Connection对象的数据源连接字符串:   
"Provider=Microsoft.Jet.Oledb.4.0;Data Source=Excel   文件物理路径   +   ";Extended   Properties=Excel   8.0";    
DataAdapter对象中的SQL语句应为:"Select * From [sheet1$]"   

大家有什么意见吗?
我的环境:VS2005/SQL SERVER 2000/---ASP.NET C#

12 个解决方案

#1


先把读到的数据乘以1000再导入数据库,或者导入数据库后再把数据乘以1000

#2


对,把这些放到一个新建的datatable里面,然后把那一列都乘以1000,然后再导入

#3


我也用2005,如果可以的话,把源码发过来我帮你看看

#4


谢谢关心帖子,

怪我没说清楚问题~~
CELL中的值是通过复杂的公式算出来的,若某个CELL的值算出来是19230.12(.....)
则显示19.2,即除以1000,保留一位小数。

19200与19230.12还是有不少差距的。

#5


所以,乘以1000的方法是不可行的,最好是有什么方法直接读取CELL的值,而不是显示值

#6


被楼主说迷糊了,你说的显示值,是在哪儿显示的?
你要导入到数据库的数据从哪儿来?不就是直接读取excel吗?

#7


可能是我没说清楚,
EXCEL中的任一个单元格,可以自定义显示格式(比如,文本、时间、日期、自定义等),
当格式自定义为“#,##0.0,”时,如果你在格中输入1000,则只显示1.0,即我说的除以1000,保留一位小数。

此时,1000为实际值,1.0为显示值。

项目中,我要取的是实际值1000,但用先前所述方法取出的是显示值1.0

#8



显示值和实际值都是对EXCEL而言,我只能从EXCEL中取出显示值,要是能取出实际值,那问题就解决了。

#9


#10


大家帮我出出主意啊~~~

#11


网上有种方法是用VB实现的,直接操作EXCEL文件,
Dim oApp 
Set oApp = CreateObject("Excel.Application")
Dim oWorkbook .....

有没有类似的用C#实现的方法?

#12


在ASP.NET中(C#),如何调用EXCEL对象?

#1


先把读到的数据乘以1000再导入数据库,或者导入数据库后再把数据乘以1000

#2


对,把这些放到一个新建的datatable里面,然后把那一列都乘以1000,然后再导入

#3


我也用2005,如果可以的话,把源码发过来我帮你看看

#4


谢谢关心帖子,

怪我没说清楚问题~~
CELL中的值是通过复杂的公式算出来的,若某个CELL的值算出来是19230.12(.....)
则显示19.2,即除以1000,保留一位小数。

19200与19230.12还是有不少差距的。

#5


所以,乘以1000的方法是不可行的,最好是有什么方法直接读取CELL的值,而不是显示值

#6


被楼主说迷糊了,你说的显示值,是在哪儿显示的?
你要导入到数据库的数据从哪儿来?不就是直接读取excel吗?

#7


可能是我没说清楚,
EXCEL中的任一个单元格,可以自定义显示格式(比如,文本、时间、日期、自定义等),
当格式自定义为“#,##0.0,”时,如果你在格中输入1000,则只显示1.0,即我说的除以1000,保留一位小数。

此时,1000为实际值,1.0为显示值。

项目中,我要取的是实际值1000,但用先前所述方法取出的是显示值1.0

#8



显示值和实际值都是对EXCEL而言,我只能从EXCEL中取出显示值,要是能取出实际值,那问题就解决了。

#9


#10


大家帮我出出主意啊~~~

#11


网上有种方法是用VB实现的,直接操作EXCEL文件,
Dim oApp 
Set oApp = CreateObject("Excel.Application")
Dim oWorkbook .....

有没有类似的用C#实现的方法?

#12


在ASP.NET中(C#),如何调用EXCEL对象?