Я использую библиотеку microsoft.excel.
Я не могу использовать первую страницу excel, я работаю только со второй страницей. Как я могу установить количество страниц.
это мой код.
excelFile.SaveAs(path);
Excel.Application application = new Excel.Application();
Excel.Workbook workbook = application.Workbooks.Open(path);
Excel.Worksheet worksheet = workbook.ActiveSheet;
Excel.Range range = worksheet.UsedRange;
for (int i = 3; i <= range.Rows.Count; i++)
{
Google lm = new Google();
lm.Default_channel_grouping = ((Excel.Range)range.Cells[i, 1]).Text;
lm.MonthOfYear = ((Excel.Range)range.Cells[i, 2]).Text;
lm.Date = ((Excel.Range)range.Cells[i, 3]).Text;
lm.Segment = ((Excel.Range)range.Cells[i, 4]).Text;
lm.Users = ((Excel.Range)range.Cells[i, 5]).Text;
lm.NewUsers = ((Excel.Range)range.Cells[i, 6]).Text;
lm.Ecommerce = ((Excel.Range)range.Cells[i, 7]).Text;
lm.Transactions = ((Excel.Range)range.Cells[i, 7]).Text;
lm.Revenue = ((Excel.Range)range.Cells[i, 7]).Text;
sdb.Google.Add(lm);
sdb.SaveChanges();
}
Кстати, запуск Excel на сервере - очень плохая идея. 1) вам нужна лицензия для каждого конечного пользователя 2) если вы не будете очень осторожны, ваш код будет продолжать запускать экземпляры Excel, пока на сервере не закончится память
İşlemleri kendim yapacağım. Bu yüzden sorun çıkmayacak. Sadece işimi kolaylaştırmak istiyorum. Бир сорун олур му?
Вы можете получить количество листов (я полагаю, это то, что вы имеете в виду под страницами), обратившись к свойству Sheets рабочей книги:
Excel.Application application = new Excel.Application();
Excel.Workbook workbook = application.Workbooks.Open(path);
var sheets = workbook.Sheets.Count;
Для работы с любым листом в коллекции (в вашем случае i = 2
)
workbook.Sheets[i]
Чтобы добавить лист и сделать его активным, используйте Sheets.Add
Чтобы выбрать рабочий лист как активный:
((Excel.Worksheet)workbook.Sheets[1]).Select();
Можете ли вы помочь мне еще немного. Я немного новичок. Я добавил ваши коды, но он по-прежнему работает сначала на странице. for (int i = 3; i <= range.Rows.Count; i++) { Google lm = new Google(); ((Excel.Worksheet)workbook.Sheets[2]).Select(); lm.Default_channel_grouping = ((Excel.Range)range.Cells[i, 1]).Text; sdb.Google.Добавить(lm); sdb.Сохранить изменения(); }
В Excel нет страниц, есть листы. Ваш код не импортирует файл Excel, он запускает Excel и считывает ячейки одну за другой как текст. Это означает, что даты и числа будут считываться как строки, требующие анализа. Было бы лучше использовать библиотеку, например, ExcelDataReader для прямой загрузки файлов Excel. Вы можете импортировать данные через SqlBulkCopy прямо в базу данных, а не через EF.