Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 1
Регистрация: 19.09.2015
Сообщений: 16
1

[WPF] "Path" является неоднозначной ссылкой между "System.Windows.Shapes.Path" и "System.IO.Path"

05.06.2017, 13:11. Просмотров 1862. Ответов 2
Метки нет (Все метки)


Здравствуйте! Делаю экспорт из программы в Excel.
Код брался от WinForm, немного переписал.
Задача была следующей: взять запись из listbox и некоторых полей textBox и поместить в файл Excel

Ругается на строку: workBook = application.Workbooks.Open(Path.Combine(Environment.CurrentD irectory, template));
"Path" является неоднозначной ссылкой между "System.Windows.Shapes.Path" и "System.IO.Path".
Подскажите как переписать, чтобы не было этой ошибки, копаюсь 2 день.
Возможно что-то в коде не так написал, вдруг по-другому пишется..
P.S. Только не пинайте((

UPD: VS предлагал перед path дописать System.IO..
прописывал, но после этого ругался на то что не найден файл template. Файл лежит в папке с программой.

P.P.S: Возможно есть более простой способ написания?

вот код:
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
        private void button9_Click(object sender, RoutedEventArgs e)
        {
            application = new Application
            {
                DisplayAlerts = false
            };
 
            const string template = "template.xlsm";
            workBook = application.Workbooks.Open(Path.Combine(Environment.CurrentDirectory, template));
            worksheet = workBook.ActiveSheet as Worksheet;
 
            worksheet.Range["A1"].Value = DateTime.Now;
            worksheet.Range["A2"].Value = textBox.Text;
            worksheet.Range["A3"].Value = textBox1.Text;
            for (int i = 0; i < listBox.Items.Count; i++)
            {
                worksheet.Cells[i + 8, 1].Value = listBox.Items[i];
            }
        }
 
        private void button10_Click(object sender, RoutedEventArgs e)//Excel
        {
            string savedFileName = "book1.xlsm";
            workBook.SaveAs(Path.Combine(Environment.CurrentDirectory, savedFileName));
            CloseExcel();
        }
 
        private void CloseExcel()
        {
            if (application != null)
            {
                int excelProcessId = -1;
                GetWindowThreadProcessId(application.Hwnd, ref excelProcessId);
 
                Marshal.ReleaseComObject(worksheet);
                workBook.Close();
                Marshal.ReleaseComObject(workBook);
                application.Quit();
                Marshal.ReleaseComObject(application);
 
                application = null;
                // Прибиваем висящий процесс
                try
                {
                    Process process = Process.GetProcessById(excelProcessId);
                    process.Kill();
                }
                finally { }
            }
        }
 
        [DllImport("user32.dll", SetLastError = true)]
        static extern uint GetWindowThreadProcessId(int hWnd, ref int lpdwProcessId);
 
        private void ClosedmainForm(object sender, MainWindow e)
        {
            CloseExcel();
        }
0
Вложения
Тип файла: 7z WinForm.7z (51.8 Кб, 1 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2017, 13:11
Ответы с готовыми решениями:

Ошибка тип "System.Windows.Markup.IComponentConnector" переадресован в сборку "System.Xaml"
Здравствуйте, при работе с wft на framework 4 появляется ошибка, в framework 3,5 все работает...

Невозможно преобразовать объект типа "System.Windows.Controls.Border" к типу "System.Windows.FrameworkElementFactory"
Доброго времени суток. Есть код: &lt;Style ...

Не удается преобразовать значение в атрибуте "Property" в объект типа "System.Windows.DependencyProperty"
Здравствуйте. Суть такова. Вчера добавила форму для построения графиков в проект отрисованую с...

System.Windows.Media.Animation.AnimationException: 'Не удается анимировать свойство "Left" для "System.Windows.Controls
Пишу простую игру Save the humans по книге &quot;Изучаем C#&quot; столкнуля с ошибкой:...

2
8117 / 4388 / 1724
Регистрация: 11.02.2013
Сообщений: 9,349
05.06.2017, 13:20 2
Цитата Сообщение от Aleksander93 Посмотреть сообщение
Возможно есть более простой способ написания?
C#
1
Path.GetFullPath(template)
но файл должен быть в папке debug, а не в папке проекта
1
0 / 0 / 1
Регистрация: 19.09.2015
Сообщений: 16
05.06.2017, 13:23  [ТС] 3
Цитата Сообщение от ViterAlex Посмотреть сообщение
но файл должен быть в папке debug, а не в папке проекта
Извиняюсь, сейчас просмотрел, я его туда уже скинул оказывается))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2017, 13:23

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Ошибка доступа "Access to the path is denied."
Хочу прочить файл через StreamReader, но выдаёт такую ошибку: System.UnauthorizedAccessException:...

Тип или имя пространства имен "Forms" не существует в пространстве имен "System.Windows"
Доброго времени суток, у меня возникла проблема при добавлении System.Windows.Forms чтобы...

Ошибка в проекте: "Необработанное исключение типа "System.NullReferenceException" в WpfApplication8.exe"
Доброго времени суток, прошу помочь с данной проблемой выдаёт ошибку &quot;Необработанное исключение...

Ошибка: Cannot implicitly convert type "string" to "System.Window.Media.Color"
Доброго времени суток! Возникла небольшая проблемка, совсем мизерная: ColorToneEffect effect1 =...


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

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

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