2011-11-29 131 views
2

我有一个Excel文件,我必须从中提取所需数据并将其保存到数据库中。我知道通过使用Range我们可以得到一个特定范围的数据。但是我提取的数据有点大。那么任何人都可以建议哪个是最好的和简单的方法来检索数据并将信息存储在数据库中?选择将excel中的大量数据保存到Sql的最佳方法

我想将A10的数据读取到未知范围。我的数据将是如下

enter image description here

按用红色标记后的数据应该去到数据库column通过column我会做,如果任何人都可以提出来读取其余列过的最好的方法。

+0

什么是'A10'后来开始你的循环?一切都选择红色? – Yuck

+0

我必须读取的数据将从'A10'开始。所选区域应该先到达表格,然后接下来的5行数据就像我想一次存储整个数据到我的表 – Ramakrishna

+0

这并没有回答这个问题 - “A10”是** AA MILNE EL **的单元格吗? – Yuck

回答

0

如果您仍然需要从代码中完成,只有一种方法。根据你的问题,你说,你的数据将从A10开始,首先得到的excelUsedRange如下

Microsoft.Office.Interop.Excel.Range xlRange = worksheet.UsedRange; 

由于只有2 columns得到了row count和Excel广告column count如下

iRows = xlRange.Rows.Count; 
iCols = xlRange.Columns.Count; 

如下

for (int iRow = 10; iRow <= iRows; iRow++) 
{ 
    for (int iCol = 1; iCol <= iCols; iCol++) 
    { 
     xlRange = (Microsoft.Office.Interop.Excel.Range)worksheet.Cells[iRow, iCol]; 
     Console.WriteLine(xlRange.Text); // From here do as per you required and insert the required data to the data base. 
     List<string> lstItems = new List<string>(); // Declare this initially 
     lstItems.Add(xlRange.Text.ToString()); 
     if (lstItems.Count == 10) 
     { 
     if (xlRange.Text.ToString().Contains("www") || lstItems[9].ToString() == string.Empty) 
     { 
     } 
     } 
+0

嗨,感谢您的回答,但正如我所说,我想将'www.something.org'后面的数据插入数据库。我怎么能做到这一点。有时候在那个地方会有空白数据。 – Ramakrishna

+0

'Ramakrishna'检查我的编辑并根据需要更改 – Dotnet

+0

感谢用户稍作改动,这对我有用 – Ramakrishna

1

那么,您可以使用NPOI来读取Excel文件并以任何您想要的方式进行解析。我们使用它将大型Excel文件导入到SQL数据库中。使用NPOI,您可以完全自由地解读数据。

最重要的是,如果你想更频繁地这样做,Excel文件的格式不应该改变,或者你应该有一些对其他地方存储的Excel文件的一般描述,告诉你的代码如何解释文件。后者当然更难做到。这取决于你的特定用例,哪个更好。

在我们的例子中,Excel文件有一个固定的布局,所以我们的实现是基于该布局。

2

您可以使用SQL Server Integration Services将Excel数据导入到表中。 SSIS包可以在预定时间运行或被调用。它使用电子表格作为数据源并允许您映射列。

相关问题