У меня есть ASP. NET веб-приложение, в которое я импортирую файл Excel (.xlsx) и сохраняю данные в базе данных.
Вот мой код для чтения файла Excel:
private void ImportBulkRegistraion(HttpContext context)
{
if (context.Request.Files.Count > 0)
{
HttpFileCollection files = context.Request.Files;
HttpPostedFile MyFile = files[0];
DataTable dt = new DataTable();
using(var excel = new ExcelPackage(MyFile.InputStream))
{
//loop for all of sheets
for (int sheetcount = 1; sheetcount <= 1; sheetcount++)
{
ExcelWorksheet worksheet = excel.Workbook.Worksheets[sheetcount];
ExcelCellAddress startCell = worksheet.Dimension.Start;
ExcelCellAddress endCell = worksheet.Dimension.End;
// place all the data into DataTable
for (int row = startCell.Row; row <= endCell.Row; row++)
{
if (row == 1)
{
//Add columns
if (sheetcount == 1)
for (int col = startCell.Column; col <= endCell.Column; col++)
dt.Columns.Add(worksheet.Cells[row, col].Value.ToString());
}
else
{
//Add Rows
DataRow dr = dt.NewRow();
int x = 0;
for (int col = startCell.Column; col <= endCell.Column; col++)
dr[x++] = worksheet.Cells[row, col].Value;
dt.Rows.Add(dr);
}
}
}
}
ExportUserToDB(dt);
}
}
//ExportUserToDB(dt);
вызывает хранимую процедуру, в которую я вставляю строки в базу данных.
Я хочу создать файл Excel, где, если есть какие-либо строки из входного Excel файл не может быть обработан, те же строки будут сохранены в этом недавно созданном файле Excel (в том же формате), который можно исправить вручную, а затем снова обработать.
Например: если строка имеет столбец Имя с имя как "O'Ma c", не обрабатывается SQL. Это ошибочная строка, и ее следует вставить во вновь созданный файл Excel.