const string fileName = @"input.xlsx";
//Creates a new instance for ExcelEngine
var excelEngine = new ExcelEngine();
//Loads or open an existing workbook through Open method of IWorkbooks
var workbook = excelEngine.Excel.Workbooks.Open(fileName, ExcelParseOptions.ParseWorksheetsOnDemand, true);
foreach (var worksheet in workbook.Worksheets)
{
using (var filteredDataTable = FilterDatatable(worksheet))
{
if (filteredDataTable == null) continue;
// Create new workbook:
var newWb = excelEngine.Excel.Workbooks.Create(1);
// Import DataTable:
newWb.Worksheets[0].ImportDataTable(filteredDataTable, true, 1, 1);
var newFilename = $@"Conversion.xlsx";
if (File.Exists(newFilename)) File.Delete(newFilename);
newWb.SaveAs(newFilename, ExcelSaveType.SaveAsXLS);
Assert.IsTrue(File.Exists(newFilename), "Filename does not exists");
}
}
private DataTable FilterDatatable(IWorksheet worksheet)
{
using (var dataTable = worksheet.ExportDataTable(worksheet.UsedRange,
ExcelExportDataTableOptions.ColumnNames | ExcelExportDataTableOptions.DetectColumnTypes |
ExcelExportDataTableOptions.ExportHiddenColumns | ExcelExportDataTableOptions.ExportHiddenRows))
{
if (worksheet.Name != "1. Foo") return null;
using (var dv = new DataView(dataTable))
{
dv.RowFilter = "Bar = '370554243'";
return dv.ToTable(true, "col1", "col2", "col3");
}
}
}
|