Показать полную графическую версию : [решено] Открытие файла Excel в Visual Basic 2010
Добрый день! Как открыть файл info.xlsx без за давания его полного пути?
Файл находится в папке Debug и включен в проект.
Delirium
01-11-2011, 06:00
Application.StartupPath + "\\info.xlsx"
Решил таким способом:
Process.Start("info.xlsx", Environment.CurrentDirectory)
Delirium
01-11-2011, 13:44
если вообще не указывать путь, то по умолчанию будет идти поиск сначала в папке с программой, затем в системных папках, ну а если не найдет, то будет ошибка.
Delirium, Так и есть, Спасибо
Process.Start("info.xlsx")
Delirium, как открыть файл info.xlsx без за давания его полного пути в этом примере:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim objXL, objWorkbook ' Объявляем переменные
' Открытие файла
objXL = CreateObject("Excel.Application")
objXL.Visible = True
objWorkbook = objXL.Workbooks.Open("C:\Users\kl27\Desktop\Проэкт\WindowsApplication1\WindowsApplication1\bin\Debug\info.xlsx")
End Sub
End Class
neo21, Если файл info.xlsx будет лежать "рядом" с исполняемым файлом, то можно просто
objWorkbook = objXL.Workbooks.Open(AppDomain.CurrentDomain.BaseDirectory+"info.xlsx")
Если же нет, то без указания полного пути не обойтись.
то по умолчанию будет идти поиск сначала в папке с программой, затем в системных папках, ну а если не найдет »
Я бы сказал не в папке с программой, а в "текущей" папке. Не всегда же они совпадают? Или я не прав?
Delirium
03-11-2011, 00:50
Application.StartupPath всегда укажет на ту папку, где лежит exe-файл, поэтому во избежание ошибок лучше все таки указывать эту статическую переменную при прописывании имени файла. И обязательно надо делать проверку существования файла перед запуском:
if(System.IO.File.Exist(Application.StartupPath + "\\file.xlsx"))
.....
else
MessageBox("File not found");
LilLoco, Спасибо большое, очень помогли мне.
Delirium, не понял эту мысль:
…лучше все таки указывать эту статическую переменную при прописывании имени файла. »
Поясните, пожалуйста.
речь об этом
public static string StartupPath { get; }
Delirium
04-11-2011, 08:54
Iska, я к тому, что не надо просто указывать имя файла, не указывая перед этим переменную StartupPath. Мало ли что там будет с текущей папкой, и т.д. и т.п. В моем же случае мы 100%-но будем искать файл в той папке, откуда была запущена программа.
здравствуйте.
у меня назрел такой вопрос: можно ли в Visual Basic почесть файл любого расширения (текст, картинка, видео, звук, архив, командный файл или файл другого типа) по байтам (1,0), чтобы затем с ними работать (записать байты в масив, применить алгоритмы сжатия, ...).
а затем произвести обратный процесс: собрать из байтов файл исходного типа.
будет ли работать собранный так же, как исходник?
если в Visual Basic такое невыполнимо, то пожалуйста посоветуйте другой язык.
для чего:
хочется написать программу сжатия файлов (наподобие архиваторов rar, zip, ... а заодно ознакомиться с программными тонкостями такого рода софта). все потому, что самый крутой "ужиматель" kgb-arhiver не всегда справляется. а это очень нежелательно, когда нужно паковать кучу мелких файлов, комплексом входящих в одну программу, потом только ищи концы.
извините, что не по теме.
можно ли в Visual Basic почесть файл любого расширения (текст, картинка, видео, звук, архив, командный файл или файл другого типа) по байтам (1,0), чтобы затем с ними работать (записать байты в масив, применить алгоритмы сжатия, ...). »
Можно.
а затем произвести обратный процесс: собрать из байтов файл исходного типа. »
Можно.
хочется написать программу сжатия файлов (наподобие архиваторов rar, zip, ... а заодно ознакомиться с программными тонкостями такого рода софта). »
А Вы знакомы с базовыми принципами сжатия информации?
потому, что самый крутой "ужиматель" kgb-arhiver не всегда справляется. »
Это как?
хорошо, что подобное возможно.
на паскале алгоритм хафмана работает идеально, но только с файлами тхт. хочется расширить возможности.
kgb-arhiver не всегда справляется потому, что если исходник великоват, то распаковка может дать результат с потерями, чего хотелось бы избежать. для видео или фото это мало значимо, а вот программу может повредить.
на паскале алгоритм хафмана работает идеально, но только с файлами тхт. хочется расширить возможности. »
Алгоритму совершенно без разницы, работать с текстом или не с текстом.
kgb-arhiver не всегда справляется потому, что если исходник великоват, то распаковка может дать результат с потерями, »
Как такое может быть? Если такое действительно имеет место — это явная ошибка в приложении.
согласен, алгоритму без разницы, работать с текстом или не с текстом, да вот только функции паскаля, на которых реализуется алгоритм, не позволяют реализовать сжатие файлов exe, mpg, jpg и т. д.
вы сказали, что на Visual Basic можно реализовать побайтовое чтение любого формата файла, и его обратную сборку из байтов до рабочего файла, аналогичного исходнику. это как раз то, что мне и нужно, потому, что данная "универсальность" функций Visual Basic должна позволять написать упаковщик для разных форматов файлов.
что на счет kgb-arhiver, то вероятно вы правы,- может попалась поломанная версия.
тестирование проводилось 1 раз, распаковка длилась 5 часов (из архива 174мгб программа распаковала на 4Ггб). распаковка завершилась "нерабочестью" результата. второй раз тестирование не проводилось.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.