Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
DISS4991
0 / 0 / 1
Регистрация: 09.09.2016
Сообщений: 5
1

Сравнения файлов Excel

29.10.2016, 02:33. Просмотров 242. Ответов 1
Метки нет (Все метки)

Есть программа которая сравнивает два файла

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog opf = new OpenFileDialog();
            opf.Filter = "Microsoft Excel (*.xls*)|*.xls*";
           
            string a = opf.FileName;
            Excel.Application app = new Excel.Application();
            Excel.Workbook Wb = app.Workbooks.Open(a); 
            Excel.Worksheet sh = Wb.Sheets[1];            
           
            
            var lastCell = sh.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell);
            
            lastColumn = (int)lastCell.Column;
            lastRow = (int)lastCell.Row;
            
            list = new string[lastCell.Column, lastCell.Row]; 
            for (int i = 0; i < (int)lastCell.Column; i++) 
                for (int j = 0; j < (int)lastCell.Row; j++) 
                {
                    list[i, j] = sh.Cells[j+1 , i+1 ].Text.ToString();
                }
 
            app.Quit();
 
            
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog opf = new OpenFileDialog();
            opf.Filter = "Microsoft Excel (*.xls*)|*.xls*";
 
            string a = opf.FileName;
            Excel.Application app = new Excel.Application();
            Excel.Workbook Wb = app.Workbooks.Open(a);
            Excel.Worksheet sh = Wb.Sheets[1];
 
            var C = sh.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell);
            r = (int)C.Row;
 
            matrix = new string[C.Row];
            
            for (int i = 1; i < C.Row; i++)
            {
                matrix[i] = (string)((sh.Cells["2", i] as Excel.Range).Text);
            }
            
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            Excel.Application otchet = new Excel.Application();
            otchet.Workbooks.Add();
            otchet.Visible = true;
            Excel._Worksheet sOtchet = otchet.ActiveSheet;
 
            for (int i = 0; i < lastColumn; i++) 
                for (int j = 0; j < lastRow; j++) 
                    for(int x = 0; x < r ; x++)
 
                {
                    if (matrix[i] == list[i,j])
                    {
                        otchet.Cells[j+1, i+1] = (string)list[i, j];
                    }
                }
        }
       
    }
 
}
нужно с двумерного массива выбрать только одну строчку которая больше за все совпадает и записать ее в файл а не все.
подскажите как.

есть идея сравнивать строки с этого файла между собой которая строка после сравнения будет больше заполнена ту и записать но я не могу сообразить как это записать правильно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2016, 02:33
Ответы с готовыми решениями:

Создание инструмента сравнения файлов (Excel)
Трубуется помощь в создании программы на С#!!

Создание Excel файлов
Здравствуйте! Подскажите, че надо юзать, чтобы написать создание Excel-файлов...

Проверка контрольной суммы файлов Excel
Добрый день. В своем приложении написал небольшой модуль, который работает с...

Отображение кнопки в Add-in для Excel у избранных файлов
Имеется надстройка которая загружается с Excel, в ней создана кнопка в ленте....

Алгоритм сравнения массивов.
Подскажите, плиз. Застрял в программе. Вопрос скорее не по c# а общий по...

1
Serg34
90 / 90 / 33
Регистрация: 20.09.2014
Сообщений: 427
Записей в блоге: 3
Завершенные тесты: 1
02.11.2016, 13:08 2
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System.Linq;
 
int matches = new int[lastRow];
for (int i = 0; i < lastRow; i++) 
    for (int j = 0; j < lastColumn; j++) 
        if (otchet.Cells[j+1, i+1] == (string)list[i, j]) // или что у Вас с чем сравнивается))
            matches[i]++;
 
int maxMatches = matches.Max();
for (int i = 0; i < lastRow; i++) 
    if (matches[i] == maxMatches)
    {
        // строка с индексом i и есть та самая
    }
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.11.2016, 13:08

Составления правильного сравнения if
как решить задачу сравнения никак не могу получить нужный результат нужно...

Значения label сравнения с числом
Добрый день уважаемые коллеги помогите разобраться с проблемой Суть такая...

Сравнения двух разных картинок!
Здравствуйте!Пожалуйста помогите разобраться ,как можно реализовать следующие:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru