我對微軟的interop庫有些困惑。看起來並不是那麼直觀,我想如果他們堅持使用多維數組,這將會是一個更好的庫。儘管如此,我對如何使用C#寫入列有點困惑。我將如何遍歷單個列並將數據放入每個單獨的列中。更好的問題是,我如何循環訪問excel中的單個excel列。我基本上試圖循環遍歷列,並基於第一列中的值將數據添加到其他列。我會把所有的數據都拉出來放進某種數據結構(最可能是一個數組)中,然後將其重新設置爲Range或類似的東西?有點困惑。下面是我用它來創建我需要,我是從同一行中其他列獲取數據來填充新列碼...使用C寫入excel中的新列使用C#
public static void setUpSheet(Worksheet wkSheet)
{
Range rng = (Range)wkSheet.get_Range("A1", Type.Missing);
rng.EntireColumn.Insert(XlInsertShiftDirection.xlShiftToRight,
XlInsertFormatOrigin.xlFormatFromRightOrBelow);
wkSheet.Range["A1", Type.Missing].Value2 = "R_EMPIID";
Range rng2 = (Range)wkSheet.get_Range("A1", Type.Missing);
rng2.EntireColumn.Insert(XlInsertShiftDirection.xlShiftToRight,
XlInsertFormatOrigin.xlFormatFromRightOrBelow);
wkSheet.Range["A1", Type.Missing].Value2 = "PopulationID";
Range rng3 = (Range)wkSheet.get_Range("A1", Type.Missing);
rng3.EntireColumn.Insert(XlInsertShiftDirection.xlShiftToRight,
XlInsertFormatOrigin.xlFormatFromRightOrBelow);
wkSheet.Range["A1", Type.Missing].Value2 = "PopPatID";
wkSheet.SaveAs("C:\\CorrectDirectory\\App_Data\\test", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
}
所以我可以添加一個新列,並命名列,現在我只需要弄清楚如何從其他列中獲取正確的數據並將它們放在該行的另一列(這些列將是我剛創建的新列)。有任何想法嗎?
UPDATE:想更具體 我知道你可以得到一個數值範圍在Excel列。但是沒有辦法知道數據集有多大。例如,
(Excel.Range)excelWorksheet.get_Range("A5:A35", Type.Missing);
這將爲您帶來一系列帶有數據的列。但是,可以說你沒有看過excel文件。如果你不知道有多少行,你將如何循環通過所有該列中的行?或者你應該做一個捕獲所有,只是做.get_Range(A2:A10000,Type.Missing)。然後,如何改變完全相同的行,但在不同的列?
僅供參考,語言被命名爲「C#」,而不是「CSHARP」。 –
這是真的。拼音寫出我希望的符號沒有錯? – SoftwareSavant
是否有理由拼寫某些東西而不是正確地拼寫? –