Każdy wie, jak uzyskać wartość komórki Excela przy otwartym pakiecie SDK 2.0 XML, znając pozycję wiersza i kolumny, np. (A2), przez Linq?Uzyskaj doskonałą wartość komórki za pomocą wiersza i pozycji kolumny za pomocą otwartego xml zapytanie sdk linq
6
A
Odpowiedz
6
So excel przechowuje wartości komórek bezpośrednio lub jeśli jest ciągiem znaków we wspólnej strukturze danych znanej jako tabela SharedString.
W poniższym przykładzie najpierw używamy linq, aby pobrać komórkę pod konkretny adres, a następnie przekazać ją do innej funkcji, aby uzyskać wartość komórki.
Należy również pamiętać, że trzeba by dodać zerowe kontrole na każdym etapie, aby określić, czy wiersz/kolumna istnieje
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
namespace TestOpenXmlSDK
{
class Program
{
static void Main(string[] args)
{
string pathSource = @"D:\sample.xlsx";
using (FileStream fsSource = new FileStream(pathSource, FileMode.Open, FileAccess.Read))
{
byte[] bytes = new byte[fsSource.Length];
fsSource.Read(bytes, 0, (int)fsSource.Length);
using (MemoryStream mem = new MemoryStream())
{
mem.Write(bytes, 0, (int)bytes.Length);
using (SpreadsheetDocument excelDocument = SpreadsheetDocument.Open(mem, true))
{
var wbPart = excelDocument.WorkbookPart;
var wsPart = wbPart.WorksheetParts.First();
var sheetData = wsPart.Worksheet.GetFirstChild<SheetData>();
var cellValue = GetCellValue(GetCell(sheetData, "B2"), wbPart);
}
}
}
}
public static Cell GetCell(SheetData sheetData, string cellAddress)
{
uint rowIndex = uint.Parse(Regex.Match(cellAddress, @"[0-9]+").Value);
return sheetData.Descendants<Row>().FirstOrDefault(p => p.RowIndex == rowIndex).Descendants<Cell>().FirstOrDefault(p => p.CellReference == cellAddress);
}
public static string GetCellValue(Cell cell, WorkbookPart wbPart)
{
string value = cell.InnerText;
if (cell.DataType != null)
{
switch (cell.DataType.Value)
{
case CellValues.SharedString:
var stringTable = wbPart.GetPartsOfType<SharedStringTablePart>().FirstOrDefault();
if (stringTable != null)
{
value = stringTable.SharedStringTable.ElementAt(int.Parse(value)).InnerText;
}
break;
case CellValues.Boolean:
switch (value)
{
case "0":
value = "FALSE";
break;
default:
value = "TRUE";
break;
}
break;
}
}
return value;
}
}
}
Powiązane problemy
- 1. Uzyskaj minimalną i maksymalną wartość za pomocą linq
- 2. Uzyskaj opis XML instancji EC2 za pomocą AWS Java SDK?
- 3. Uzyskaj maksymalną długość kolumny "ciąg" za pomocą LINQ do SQL
- 4. Pozycjonowanie pozycji na liście za pomocą LINQ
- 5. Uzyskaj wartość atrybutu z prostego XML za pomocą JQuery/Javascript
- 6. Grupowanie za pomocą LINQ
- 7. Uzyskaj wartość zwracaną za pomocą podprocesu
- 8. Uzyskaj wartość słownika za pomocą refleksji
- 9. Wybierz najczęstszą wartość za pomocą LINQ
- 10. Uzyskaj wartość asp: HiddenField za pomocą jQuery
- 11. Zapytanie za pomocą Sparql
- 12. Jak wybrać i zmienić wartość komórki tabeli za pomocą jQuery?
- 13. Najbardziej elegancki sposób na zapytanie łańcuch XML za pomocą XPath
- 14. Uzyskaj atrybuty i wartości za pomocą SimpleXML
- 15. Zapytanie o pole bytea w postgresie za pomocą wiersza polecenia
- 16. W zapytaniu LINQ sposób zamawiania za pomocą dołączonej kolumny tabeli za pomocą .Include()?
- 17. Najlepszy sposób na zapytanie XDocument za pomocą LINQ?
- 18. Uzyskaj kierunek geograficzny za pomocą pola magnetycznego
- 19. Pobierz sumę kolumny datagridview za pomocą Linq dla odrębnego identyfikatora
- 20. Jak uzyskać wartość kolumny Timestamp w Androidzie za pomocą kursora
- 21. Aplikacja funkcji za pomocą wiersza/kolumny macierzy numpy
- 22. Uruchamianie witryny za pomocą wiersza poleceń Windows
- 23. Parsowanie XML XML za pomocą DOM, aby uzyskać wartość węzła,
- 24. Uzyskaj zawartość reklamy na Facebooku za pomocą Facebooka PHP SDK
- 25. Uzyskaj zdjęcie profilowe z Facebooka za pomocą 3.0 SDK
- 26. Uzyskaj wartość pozycji przewijania
- 27. Zewnętrzne zapytanie łączące za pomocą LINQ do jednostek
- 28. Uzyskaj wybraną wartość kolumny wiersza extjs grid
- 29. Oblicz produkt za pomocą LINQ
- 30. Zapytanie Active Directory za pomocą "SQL"?