NerakSeven Ответов: 1

Как прочитать файл Excel строки и лист конкретным использованием OpenXML ?


Как читать строки excel и конкретные листы с помощью open XML C# в таблицу sql server ?

У меня есть файл excel без формата, я имею в виду, что могу читать только файл excel на первом листе и в первой строке, как я читаю второй лист и строку A6? ( имена столбцов a начинаются с A6 - D6)

Я пытаюсь работать с oledb и interoop и читаю open xml это выбор для этого

у вас есть примеры , пожалуйста, я новичок и опаздываю на работу

Что я уже пробовал:

protected void insertBoqElements_Click(object sender, EventArgs e)  
{  
    try  
    {  
        //specify the file name where its actually exist   
        string filepath = @ "D:\TPMS\Uploaded_Boq\test.xlsx";  
  
        //open the excel using openxml sdk  
        using(SpreadsheetDocument doc = SpreadsheetDocument.Open(filepath, false))  
        {  
  
            //create the object for workbook part  
            WorkbookPart wbPart = doc.WorkbookPart;  
  
            //statement to get the count of the worksheet  
            int worksheetcount = doc.WorkbookPart.Workbook.Sheets.Count();  
  
            //statement to get the sheet object  
            Sheet mysheet = (Sheet) doc.WorkbookPart.Workbook.Sheets.ChildElements.GetItem(0);  
  
            //statement to get the worksheet object by using the sheet id  
            Worksheet Worksheet = ((WorksheetPart) wbPart.GetPartById(mysheet.Id)).Worksheet;  
  
            //Note: worksheet has 8 children and the first child[1] = sheetviewdimension,....child[4]=sheetdata  
            int wkschildno = 4;  
  
  
            //statement to get the sheetdata which contains the rows and cell in table  
            SheetData Rows = (SheetData) Worksheet.ChildElements.GetItem(wkschildno);  
  
  
            //getting the row as per the specified index of getitem method  
            Row currentrow = (Row) Rows.ChildElements.GetItem(1);  
  
            //getting the cell as per the specified index of getitem method  
            Cell currentcell = (Cell) currentrow.ChildElements.GetItem(1);  
  
            //statement to take the integer value  
            string currentcellvalue = currentcell.InnerText;  
  
        }  
    } catch (Exception Ex)  
    {  
  
        lbldisplayerrors.Text = Ex.Message;  
    }  
  
}