Вы можете установить свойство Action для объекта PagingList:
var model = await PagingList.CreateAsync(userlist, 2, page);
model.Action = "Organizations";
Следующий код должен добиться цели. У меня нет Excel передо мной, таким образом, я не протестировал его, но понятие является звуковым.
Если это заканчивает тем, что было слишком медленно, мы можем посмотреть на способы повысить эффективность.
Sub SelectSomeRecords()
Dim testLine As String
Open inputFileName For Input As #1
Open outputFileName For Output As #2
While Not EOF(1)
Line Input #1, testLine
If RecordIsInteresting(testLine) Then
Print #2, testLine
End If
Wend
Close #1
Close #2
End Sub
Function RecordIsInteresting(recordLine As String) As Boolean
Dim lineItems(1 to 8) As String
GetRecordItems(lineItems(), recordLine)
''// do your custom checking here:
RecordIsInteresting = lineItems(8) = "LS1 7AA"
End Function
Sub GetRecordItems(items() As String, recordLine as String)
Dim finishString as Boolean
Dim itemString as String
Dim itemIndex as Integer
Dim charIndex as Long
Dim inQuote as Boolean
Dim testChar as String
inQuote = False
charIndex = 1
itemIndex = 1
itemString = ""
finishString = False
While charIndex <= Len(recordLine)
testChar = Mid$(recordLine, charIndex, 1)
finishString = False
If inQuote Then
If testChar = Chr$(34) Then
inQuote = False
finishString = True
charIndex = charIndex + 1 ''// ignore the next comma
Else
itemString = itemString + testChar
End If
Else
If testChar = Chr$(34) Then
inQuote = True
ElseIf testChar = "," Then
finishString = True
Else
itemString = itemString + testChar
End If
End If
If finishString Then
items(itemIndex) = itemString
itemString = ""
itemIndex = itemIndex + 1
End If
charIndex = charIndex + 1
Wend
End Sub
Это непосредственно не отвечает на Ваш вопрос, но grep
(или один из эквивалентов Windows), действительно сиял бы для этого, например,
grep -e <regex_filter> foo.csv > bar.csv
Как насчет VBScript, хотя это также работало бы в Excel:
Set cn = CreateObject("ADODB.Connection")
'Note HDR=Yes, that is, first row contains field names '
'and FMT delimted, ie CSV '
strCon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Docs\;" _
& "Extended Properties=""text;HDR=Yes;FMT=Delimited"";"
cn.open strcon
'You would not need delimiters ('') if last field is numeric: '
strSQL="SELECT FieldName1, FieldName2 INTO New.csv FROM Old.csv " _
& " WHERE LastFieldName='SomeTextValue'"
'Creates new csv file
cn.Execute strSQL
Посмотрите на Input #
оператор в справке Excel
Демонстрационное использование было бы:
Input #fnInput, s_Forename, s_Surname, dt_DOB, i_Something, s_Street, s_Town, s_County, s_Postcode
и затем используйте Write #
оператор для выписывания соответствия записям снова
Единственная проблема могла бы быть то, что формат даты в выводе закончится как # 1967-07-01#, но этот формат однозначен в отличие от 07.01.1967, который представил бы 1-го июля в Великобритании и 7-го января в США. Если необходимо сохранить форматирование даты, затем выписывают его как строку:
s_DOB = Format(dt_DOB, "dd/mm/yyyy")
Я использовал следующую производную кода, данного выше для успешного открытия произвольного файла CSV от VBA в Excel.
Явная опция
Общественность cn Как Соединение
Общедоступный Sub DoIt ()
Тусклый strcon Как Строка
Тусклый strsql Как Строка
Тусклый RS Как RecordsetНабор cn = CreateObject ("ADODB.Connection")
strcon = "Provider=Microsoft. Струя. OLEDB.4.0; Данные Source=C:\bin\HomePlanet\"; _
И "Расширенные свойства = "" текст; HDR=Yes; FMT=Delimited""";cn. Открытый strcon
strsql = "ВЫБИРАЮТ * ИЗ astuname.csv"
RS набора = Новый ADODB.Recordset
RS. Откройте strsql, cn
DoEvents 'пауза здесь для осмотра RS объектов и свойств. Близко
Конец Sub
RS (recordset) имеет набор полей со свойством Count. Каждое поле как свойство Type.
Можно сослаться на поля порядковым номером...
Отладка. RS печати. Поля (RS. Поля. Количество - 1).Type
Действительно ли это достаточно?
В противном случае отправьте первые несколько строк входного файла, и я возьму его остальная часть пути.
Что-либо можно сделать a-row-at-a-time с vba в Excel, можно сделать в доступе с vba; плюс намного больше, потому что это - база данных, а не электронная таблица. Действительно ли доступ недоступен Вам?
Намного легче иметь дело с логическими таблицами, записями, и полями, чем логические рабочие листы, строками и столбцами.
Для входа, почему делает "/Data/Import Внешний Data/Text/csv" не, работают? Является вход не действительно портативным csv?
Я предложил бы смотреть на Библиотеку регулярных выражений (необходимо видеть его в "Инструментах... Ссылки" как "Microsoft VBScript Regular Expressions 5.5" или что-то очень похожее.
Существуют выборки и Reg Exp и довольно всестороннего познакового в этом местоположении: http://www.xbeat.net/vbspeed/c_ParseCSV.php. Обратите внимание, что версия Regexp является waaaay короче!
Весело провести время...