Примените цвет при экспорте в excel, если и код CPT, и CPT из первой таблицы совпадают с CPT
Ниже приведена моя первая таблица в базе данных
CPTCode CPT 80051 82374 82435 84132 84295
и это моя вторая таблица в базе данных мое требование заключается в том что если код CPT в моей первой таблице имеет тот же код cpt во второй таблице то что я должен сделать это я должен покрасить этот код cpt в моей второй таблице после экспорта
кроме того я должен проверить все cpts этого кода cpt и если какие либо cpt совпадают в обеих таблицах я должен покрасить их также это означает
Billnum CPT OCR000967985 80051 OCR000967985 82310 OCR000967985 83690 OCR000967985 84132 OCR000967985 85025 OCR000967985 86140
У меня есть код CPT 80051 в первой таблице, и соответствующие cpt для кода CPT 80051-это 82374, 82435, 84132, 84295 - это данные первой таблицы
Во второй таблице у меня есть такой же счет num OCR000967985 с cpt 80051, 82310, 83690, 84132, 85025, 86140
если мы сравним приведенные выше данные 80051 в первой таблице совпадает с 80051 во второй таблице и один из cpt для кода CPT 80051 совпадает с cpt во второй таблице которая является 84132 то при экспорте я должен применить цвет для 80051 и 84132
как код КПП и КПП в первой таблице совпадает с КПП в второй таблице. Может ли кто-нибудь помочь мне в этом
Что я уже пробовал:
я не мог найти источник для этого
jekin77
как вы экспортируете данные в excel? (Оле ? Другая библиотека ?)
в любом случае... как возможное решение :
1: кэширование всех значений совпадения
2: экспорт данных в excel
3: цикл через значения соответствия
3.1: поиск значения в таблице excel
3.1.1: если найдено -> отметьте это
kav@94
использование взаимодействия
jekin77
try to use alogotithm abow with snippets below
//get used range Excel.Range usedRange= WorkSheet.UsedRange; //find cell that match your search value Excel.Range findRange= usedRange.Find(YourSearchValue, missing, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlPart, Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, false, missing, missing); //mark matches Excel.Range firstFind = null; while(findRange!= null) { // Keep track of the first range you find. if (firstFind == null) { firstFind = findRange; } // If you didn't move to a new range, you are done. else if (findRange.get_Address(Excel.XlReferenceStyle.xlA1) == firstFind.get_Address(Excel.XlReferenceStyle.xlA1)) { break; } //Apply color findRange.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red); findRange.Font.Bold = true; findRange = findRange.FindNext(findRange); }
kav@94
мое требование отличается от решения, которое вы мне дали
Мои данные table1 и table2 уже есть в моей базе данных и я пытаюсь сравнить данные таблицы 1 с данными таблицы 2 то есть я сравниваю
CPTCode CPT
80051 82374
82435
84132
84295
с
Billnum КПП
OCR000967985 80051
OCR000967985 82310
OCR000967985 83690
OCR000967985 84132
OCR000967985 85025
OCR000967985 86140
поскольку моя вторая таблица имеет как 80051, так и 84132 в первой таблице, мне нужно применить цвет для моей второй таблицы при экспорте в excel.
я получаю данные из двух таблиц в две таблицы данных, и меня поразило сравнение первой таблицы данных со второй таблицей данных, чтобы найти соответствующие CPT в обеих таблицах данных и применить цвета.
До сих пор я могу получить две таблицы данных в две таблицы данных оттуда я получил удар с двумя задачами они есть
1) Поиск совпадающих Cpt в обеих таблицах и
2) Применение цвета к тем, кто соответствует Cpt, при экспорте в excel
jekin77
ладно. вы можете воспользоваться двумя таблицами - скажи объекта DataTable("первый") и DataTable("второй")
сохраните значения CPT из таблиц в двух списках и сравните их
using System.Linq; . . DataTable table1 = new DataTable("First"); ...//fill you first table with data DataTable table2 = new DataTable("Second"); ...//fill you second table with data //loop thrue the first table rows and collect cpt values List<string> cptValuesList1 = new List<string>(); foreach (DataRow row in table1.Rows) { cptValuesList1.Add(row["CPTCode"].ToString()); cptValuesList1.Add(row["CPT"].ToString()); } //remove doubletts cptValuesList1 = cptValuesList1.Distinct().ToList(); //loop thrue the second table rows and collect cpt values List<string> cptValuesList2 = new List<string>(); foreach (DataRow row in table2.Rows) { cptValuesList2.Add(row["CPT"].ToString()); } //remove doubletts cptValuesList2 = cptValuesList2.Distinct().ToList(); //get intersected values List<string> intersectList = cptValuesList1.Intersect(cptValuesList2); . . //now use the snippets abow to mark you interesected values