Работа с документами Word в C#

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Fresh_MaN
Сообщения: 1
Зарегистрирован: 16 июн 2014, 19:00

16 июн 2014, 19:03

Доброго времени суток. Столкнулся с такой проблемой: нужно реализовать работу с документами Word в C#. По факту так происходит: наживаю на Button1 и через openfiledialog выбираю нужный мне документ и он прикрепляется к записи из БД. При нажатии на button2 автоматически открывается документ. Так вот, собственно проблема - на моей машине все работает замечательно. На машине заказчика при прикреплении документа программа вылетает. Причем ни эксепшена, ничего - просто "программ выполнила недопустимую операцию и будет закрыта" (как-то так).
Открытие документа работает нормально. Вот кусок кода, ответственный за прикрепление документа:

Код: Выделить всё

if (dataGridView1.CurrentRow == null)
                MessageBox.Show("Выберите бойца!", "Ошибка", MessageBoxButtons.OK);
else
            {
                app = new Microsoft.Office.Interop.Word.Application();
                doc = null;
 
                string tmp = dataGridView1.CurrentRow.Cells[1].Value.ToString() + dataGridView1.CurrentRow.Cells[2].Value.ToString();
 
                OpenFileDialog op = new OpenFileDialog();
                object fileName;
                if (op.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    fileName = op.FileName;
                    object falseValue = false;
                    object trueValue = true;
                    object missing = Type.Missing;
 
                    doc = app.Documents.Open(ref fileName, ref missing, ref trueValue,
                            ref missing, ref missing, ref missing, ref missing, ref missing,
                            ref missing, ref missing, ref missing, ref missing, ref missing,
                            ref missing, ref missing, ref missing);
                    DirectoryInfo dir = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + tmp + @"\");
                    dir.Create();
                    string save = AppDomain.CurrentDomain.BaseDirectory + tmp + @"\" + "резюме.doc";
                    doc.SaveAs2(save, Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing,Type.Missing);
                    doc.Close();
                    app.Quit();
                }
}
try...catch ничего не выдает. программа просто терминируется без всяких ексепшенов. Помогите пожалуйста!
GeorgeSoca
Сообщения: 0
Зарегистрирован: 12 окт 2015, 04:09
Откуда: Guam
Контактная информация:

14 окт 2015, 20:56

On our web, you can feel safe! Besides we use mirrored hard drives on all of our servers so we also take backup twice a day on separate servers. We use ISPmanager as the control panel. ISPmanager is a control panel that makes it easy to administer its Web site. With us you can place as many websites and domains you wish for a hosting account.
virtual hosting
Ответить