Nike Jagger 37 / 37 / 10 Регистрация: 08.03.2012 Сообщений: 236 |
||||
1 |
||||
01.08.2012, 15:00. Показов 7854. Ответов 30 Метки нет (Все метки)
Здравствуйте!
Я думаю, что все это из-за того, что разные версии Excel. Я подключал Microsoft Excel 14.0 Object Library, а в примере Microsoft Excel 12.0 Object Library. Тогда, что нужно для того, что бы работал код вместе с Microsoft Excel 14.0 Object Library?
0 |
Tessen 713 / 680 / 126 Регистрация: 30.03.2012 Сообщений: 1,124 |
||||
01.08.2012, 15:10 |
2 |
|||
ТАМ эта строчка есть
0 |
Заблокирован |
||||
01.08.2012, 15:12 |
3 |
|||
with alias ‘Excel’ Возможно из за отсутствия этого.
Добавлено через 35 секунд Не по теме: Опять опоздала:)
0 |
37 / 37 / 10 Регистрация: 08.03.2012 Сообщений: 236 |
|
01.08.2012, 15:17 [ТС] |
4 |
есть… Добавлено через 52 секунды
0 |
713 / 680 / 126 Регистрация: 30.03.2012 Сообщений: 1,124 |
|
01.08.2012, 15:41 |
5 |
покажите все что идет выше этого кода, от самого начала программы?
0 |
Nike Jagger 37 / 37 / 10 Регистрация: 08.03.2012 Сообщений: 236 |
||||
01.08.2012, 16:08 [ТС] |
6 |
|||
вот весь код, правд он аналогичен тому, который находится по ссылке:
0 |
Tessen 713 / 680 / 126 Регистрация: 30.03.2012 Сообщений: 1,124 |
||||||||
01.08.2012, 17:10 |
7 |
|||||||
образец
ваш вариант теперь вам понятно почему при написании Excel программа не может выбрать куда же ей обратиться?
1 |
Nike Jagger 37 / 37 / 10 Регистрация: 08.03.2012 Сообщений: 236 |
||||
01.08.2012, 21:33 [ТС] |
8 |
|||
вот блин на такой фигне попался, просто я проект так назвал, а он мне и неймспейс также. Только вот теперь ругается на строчку:
0 |
Tessen 713 / 680 / 126 Регистрация: 30.03.2012 Сообщений: 1,124 |
||||
01.08.2012, 21:39 |
9 |
|||
что то мне подсказывает что надо так
1 |
37 / 37 / 10 Регистрация: 08.03.2012 Сообщений: 236 |
|
01.08.2012, 21:53 [ТС] |
10 |
только он чего-то книгу не создает…
0 |
713 / 680 / 126 Регистрация: 30.03.2012 Сообщений: 1,124 |
|
01.08.2012, 22:14 |
11 |
а должен? эта строчка ее и не создает
0 |
37 / 37 / 10 Регистрация: 08.03.2012 Сообщений: 236 |
|
01.08.2012, 22:36 [ТС] |
12 |
я не про данную строку, просто сама программа должна создавать Excel книгу.
0 |
713 / 680 / 126 Регистрация: 30.03.2012 Сообщений: 1,124 |
|
01.08.2012, 23:47 |
13 |
эм, да нет, вроде не должна, она ее открывает, потом чз пару строчек кода закрывает, ну и выводит в мессаджбокс что прочитала в ней
0 |
37 / 37 / 10 Регистрация: 08.03.2012 Сообщений: 236 |
|
02.08.2012, 01:17 [ТС] |
14 |
блин, но там же статья по тому как программно создать книгу Excel…
0 |
Tessen 713 / 680 / 126 Регистрация: 30.03.2012 Сообщений: 1,124 |
||||||||
02.08.2012, 09:13 |
15 |
|||||||
создание книги происходит здесь
у вас:
ваша программа ничего создавать не обязана
0 |
37 / 37 / 10 Регистрация: 08.03.2012 Сообщений: 236 |
|
02.08.2012, 13:48 [ТС] |
16 |
это не моя программа, просто я по примеру делал… Добавлено через 12 секунд
0 |
Tessen 713 / 680 / 126 Регистрация: 30.03.2012 Сообщений: 1,124 |
||||
02.08.2012, 13:55 |
17 |
|||
это не моя программа, просто я по примеру делал… Добавлено через 12 секунд программа открывает csharp.net-informations.xls из папки программы, считывает из нее текст всех ячеек и выводит по очереди в месаджбокс, после чего закрывается
1 |
37 / 37 / 10 Регистрация: 08.03.2012 Сообщений: 236 |
|
02.08.2012, 14:04 [ТС] |
18 |
что за misValue? Добавлено через 3 минуты
0 |
Tessen 713 / 680 / 126 Регистрация: 30.03.2012 Сообщений: 1,124 |
||||
02.08.2012, 14:57 |
19 |
|||
это код из вашей ссылки
1 |
37 / 37 / 10 Регистрация: 08.03.2012 Сообщений: 236 |
|
02.08.2012, 15:09 [ТС] |
20 |
простите за мою невнимательность.
0 |
При выполнении проекта C # для эксплуатации таблицы Excel с использованием Microsoft.Office.interop.excel; в пространстве имен имени «Офис» в «Microsoft» нетВ пространстве имен нет имени типа или пространства имен в «Microsoft».Interop”Отказ Обходной путь:
В проекте — «Добавить ссылку ——» COM компоненты, выберите
Интеллектуальная рекомендация
Swfit-разница между классом и структурой
Основное различие между классом и структурой: класс является ссылочным типом, а структура является типом значения. Нет изображения, чтобы сказать J8, ну, посмотрите на картинку, чтобы поговорить. тип …
Вам также может понравиться
Обучение ORCL-MAIN LINE 2-PLSQL
SQL Basic Learning Краткое введение определение PL/SQL был разработан Oracle Corporation в начале 1990 -х годов для улучшения функции SQL. PL/SQL — один из языков программирования, встроенных в базу д…
Я читаю файл excel, и содержимое затем сохраняется в БД. Проблема заключается в проверке пространства в столбце Excel. Некоторые из столбцов являются пробелами, и для них значения DB будут равны нулю. У меня есть проверка на наличие нулевого значения при чтении ячеек, но почему-то она не работает должным образом.
Код
if (workSheet.Cells[rowIterator, 12].Value != null)
store.WeeklyOff = workSheet.Cells[rowIterator, 12].Value.ToString();
if (workSheet.Cells[rowIterator, 13].Value != null)
store.OpenTime = workSheet.Cells[rowIterator, 13].Value.ToString();
if (workSheet.Cells[rowIterator, 14].Value != null)
store.CloseTime = workSheet.Cells[rowIterator, 14].Value.ToString();
В приведенном выше фрагменте я поставил проверку нулевого значения для каждой ячейки. Проблема состоит в том, что столбец 12 также является пробелом, и эта проверка работает нормально, т.е. if
условие ложно и оно переходит к следующему оператору, но из столбца 13 и далее нулевая проверка не работает. Во время отладки я могу увидеть null
для столбца 13 и 14, все еще != null
Проверка != null
не проверена, и код в выражении if
выполняется, и я получаю исключение из null-указателя. Я пробовал много других вещей для нулевой проверки, но ничего не работает должным образом. Борьба с последнего 1 дня, но ничего не работает. Все переменные определяются как String
. Пожалуйста, порекомендуйте.
xlWorkBook = xlApp.Workbooks.Open("csharp.net-informations.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "t", false, false, 0, true, 1, 0);//открываем существующую книгу xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);//выбираем лист range = xlWorkSheet.UsedRange; //выбираем область for (rCnt = 1; rCnt <= range.Rows.Count; rCnt++) //по всем строкам области { for (cCnt = 1; cCnt <= range.Columns.Count; cCnt++) //по всем столбцам { str = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Value2; //берем строку из ячейки MessageBox.Show(str); // выводим строку в месаджбокс } } xlWorkBook.Close(true, null, null);//закрываем книгу xlApp.Quit();//закрываем эксель
Так что я новый пользователь Си. Однако в строках 4, 18, 19 и 20 я получаю следующую ошибку:
Не удалось найти имя типа или пространства имен Excel
Я импортировал ссылку на COM-библиотеку excel, но безрезультатно.
using System;
using System.IO;
using System.Diagnostics;
using Excel;
namespace CallPython
{
class Program
{
private static bool ExcelCommentsChecker()
{
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workBook = excelApp.Workbooks.Open(@"C:Toolscomments.xlsx");
foreach (var worksheet in workBook.Worksheets()
if (worksheet.Comments != null)
{
Console.WriteLine("comments");
}
else
{
Console.WriteLine("The variable is set to false.");
}
//foreach (var row in worksheet.Rows)
// foreach (var cell in row.Cells)
// https://docs.microsoft.com/en-us/visualstudio/vsto/how-to-programmatically-add-and-delete-worksheet-comments
// https://www.c-sharpcorner.com/blogs/how-to-add-move-hide-remove-comments-to-an-excel-worksheet-cell-using-epplus-net-application-c-sharp-part-eight
//https://www.codeproject.com/Tips/801032/Csharp-How-To-Read-xlsx-Excel-File-With-Lines-of
// if (cell != null) // Do something with the cells
return false;
}
static void Main(string[] args)
{
// full path of python interpreter
string python = @"C:Toolspython3python.exe";
// python app to call
string myPythonApp = @"C:Toolswordchecksinglefile.py";
//https://www.codeproject.com/Tips/801032/Csharp-How-To-Read-xlsx-Excel-File-With-Lines-of
// Create new process start info
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(python);
// make sure we can read the output from stdout
myProcessStartInfo.UseShellExecute = false;
myProcessStartInfo.RedirectStandardOutput = true;
// start python app with 3 arguments
// 1st arguments is pointer to itself,
// 2nd and 3rd are actual arguments we want to send
myProcessStartInfo.Arguments = myPythonApp;
Process myProcess = new Process();
// assign start information to the process
myProcess.StartInfo = myProcessStartInfo;
// start the process
myProcess.Start();
// Read the standard output of the app we called.
// in order to avoid deadlock we will read output first
// and then wait for process terminate:
StreamReader myStreamReader = myProcess.StandardOutput;
string myString = myStreamReader.ReadLine();
/*if you need to read multiple lines, you might use:
string myString = myStreamReader.ReadToEnd() */
// wait exit signal from the app we called and then close it.
myProcess.WaitForExit();
myProcess.Close();
///
Console.WriteLine("Value received from script: " + myString);
System.Threading.Thread.Sleep(3000);
// write the output we got from python app
}
}
}
Я знаю, что это ошибка импорта, но я недостаточно разбираюсь в C-Sharp, чтобы знать, где возникает эта ошибка.
Пространство имен не «Excel» .. вы добавили библиотеку взаимодействия? что поможет вам найти имя пространства имен
— BugFinder
27.07.2018 10:37
CSS text-wrap: balance
CSS text-wrap: balance — это классическая типографская техника ручного переноса строк для сбалансированных текстовых блоков. При этом браузеру…
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Ответы
1
Ответ принят как подходящий
Вы используете Office Interop Objects, но используемое пространство имен неверно.
Я думаю, вы хотите использовать в коде слово Excel, поэтому вы должны создать псевдоним для пространства имен:
using Excel = Microsoft.Office.Interop.Excel;
Тогда это должно работать
Excel.Application excelApp = new Excel.Application();
И убедитесь, что вы добавили в свой проект сборку Microsoft.Office.Interop.Excel. Как добавить эту сборку