Interop Excel UsedRange Lignes Compter incorrect
Je suis en train de lire une feuille de calcul excel dans la mémoire, mais lorsque j'utilise la feuille de calcul.UsedRange.Les lignes.Le comte, la valeur de retour est incorrect. J'ai 1670 lignes de données dans ma feuille de calcul, mais le nombre de lignes ramène 694 lignes.
var excelApp = new Microsoft.Office.Interop.Excel.Application {Visible = false};
var workbook = excelApp.Workbooks.Open(_mirrorFileName,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing);
var worksheet = (Worksheet)workbook.Worksheets[1];
var excelRange = worksheet.UsedRange;
var valueArray = (object[,])excelRange.Value[XlRangeValueDataType.xlRangeValueDefault];
var rowCount = worksheet.UsedRange.Rows.Count;
Dois-je utiliser UsedRange pour trouver le nombre de lignes ou est-il une autre méthode???
Je ne voit comment
Essayé de reproduire le problème, mais
changement var valueArray = (object[,])excelRange.Valeur[XlRangeValueDataType.xlRangeValueDefault]; par var valueArray = (object[,])excelRange.Valeur;
UsedRange.Rows.Count
pouvez retourner moindre nombre de lignes que ce qui est présent. Si je mets une valeur dans la cellule A1 & une autre valeur dans la cellule A1048576, UsedRange.Rows.Count
retourne 1048576.Essayé de reproduire le problème, mais
UsedRange.Rows.Count
toujours retourné le nombre de lignes. Il semble, d'après la docs, vous pouvez obtenir un nombre qui est plus grand que le nombre de lignes avec des valeurs en eux, mais je ne pense pas que vous pourriez obtenir un plus petit nombre: "Un objet Range qui représente toutes les cellules qui contient une valeur de à tout moment." (mon emphase)changement var valueArray = (object[,])excelRange.Valeur[XlRangeValueDataType.xlRangeValueDefault]; par var valueArray = (object[,])excelRange.Valeur;
OriginalL'auteur wakthar | 2014-06-17
Vous devez vous connecter pour publier un commentaire.
Essayez l'exemple de code suivant,
Déclarer la variable
Excel.Range range
et ensuite de l'utiliser.En fait, vous avez utilisé var pour créer votre objet comme var feuille de calcul = (Feuille de calcul)classeur.Les feuilles de calcul[1]; Condense de ce juste de l'utilisation de la Microsoft Excel xx.0 Object Library pour créer des objets, des variables comme les Excel.Feuille de calcul xlWorkSheet; Excel.La gamme;
c'est ignorer la valeur null lorsque vous allez utiliser dans la boucle sera incorrect
OriginalL'auteur Thirusanguraja Venkatesan