2011-04-28 76 views
-1

發現的解決方案:檢查崗複製Excel中排在Visual Basic .NET(VS 2008,.NET Framework 3.5中)

你好底部,

我使用Excel對象模型(導入命名空間微軟。 Office.Interop.Excel)在我的代碼中打開一個Excel.Application對象,然後打開一個工作簿,工作表等。我在做的事很簡單:我打開兩個工作表對象;一個已經填充了數據,另一個是空的,應該填充第一個工作表中的一些行。如果關於第一個工作表中的單元格的某些條件未得到滿足,則我想要複製第二個工作表中第一個可用行的整個行。我有一個整數計數器,初始化爲1,這將索引輸出工作表中的第一個空行,每當我在outputSheet.Rows(counter)處插入一行時,該計數器顯然會遞增。

我谷歌每一個解決方案要麼使用VBA(我正在尋找一個基於VB.NET的解決方案)或與.NET框架3.5(我在運行時收到異常)不兼容。我猜測我沒有正確使用Range對象或某些東西;無論如何,做這件事最簡單的方法是什麼?我真的不想打開一個到我的Excel文件的OLEDB連接:這對於我試圖實現的簡單行復制機制來說太複雜了。

感謝,

傑森

編輯#1:典型的那種Excel中記錄我不得不面對:

1 | V | 1 | 01078215 | 02 |全名

2 | V | 1 | 8048321 | 01 |全名

例如,如果行的第四個單元格不是8位數字,我想將行按原樣複製到第二個excel文件中。

編輯#2:代碼:

'copy a row from an excel spreadsheet to another 

Sub CopyRowTo(ByVal input As Excel.Worksheet, 

        ByVal output As Excel.Worksheet, 

        ByVal row_in As Integer, 

        ByVal row_out As Integer) 

    input.Activate() 

    input.Rows(row_in).Select() 

    input.Rows(row_in).Copy() 

    output.Activate() 

    output.Rows(row_out).Select() 

    output.Rows(row_out).Paste() 

End Sub 

稱爲:CopyRowTo(inputSheet,outputSheet,1,1)

溶液中發現:

我已經找到了解決我的問題。下面的代碼的伎倆:

input.Activate() 

input.Rows(row_in).Copy() 

output.Activate() 

output.Rows(row_out).Select() 

output.Paste() 

看來,出於某種原因,我需要粘貼方法適用於Excel.Worksheet對象,具有後選擇() - 編包含在該對象內的範圍(誠實地說,我根本沒有得到VB.NET)。

謝謝

Ĵ

+0

請提供sheet1數據示例及其在sheet2中的顯示方式。顯示你迄今爲止編寫的代碼。使用VBA代碼時看到什麼錯誤? – shahkalpesh 2011-04-28 08:13:53

+0

表1數據示例,其中不同的字段用「|」分隔: 1 | V | 1 | 01078215 |地址|郵編|城市1 2 | V | 3 | 0567892 |地址2 |郵政編碼2 |城市2 例如,如果4th字段沒有8位數字(第二行就是這種情況),我需要將整個Excel行復制到新的電子表格中。就是這樣,沒有額外的格式。 – Jason 2011-04-28 09:51:44

+0

我一直在使用在起始帖子的「編輯:代碼」部分提供的代碼。 但是,我收到一個異常,指出「Paste()」不是Range類的有效公共成員。這與以下Microsoft文檔相矛盾:http://msdn.microsoft.com/zh-cn/library/ aa220332%28v = office.11​​%29.aspx – Jason 2011-04-28 09:54:13

回答

1

如果您的免費版本(每片150行,最多5個工作表)的限制之內,該Gembox庫可以很容易: http://www.gemboxsoftware.com/GBSpreadsheetFree.htm

可能還有其他類似的東西可用。

+0

不幸的是,這項工作涉及能源供應商收到的excel電子表格,遠遠超過150行。但是謝謝你的興趣。 – Jason 2011-04-28 08:18:01

相關問題