делаю вывод отчета в ворд по шаблону из таблицы в базе данных MSSQL, но не получается заменить слово в шаблоне table_job на таблицу которую я заполнил. Эта таблица удаляет все старые записи.
Цель: нужно создать таблицу и вывести ее точно где в шаблоне написано table_job. вот сам шаблон Необработанное исключение типа "System.Runtime.InteropServices.COMException" в Dip_Project_v1.0.exe Дополнительные сведения: Неверное положение символа. Код ниже
private readonly string TemplateFilename = @"C:\Users\Tim\Documents\Visual Studio 2015\Projects\Dip_Project_v1.1\Dip_Project_v1.0\Tamplate_zakaz_naryad_new.doc";
private void button1_Click(object sender, EventArgs e)
{
string name_client, model_car;
Form1 f1 = new Form1();
using (SqlConnection sqlcon = new SqlConnection(f1.connected))
{
sqlcon.Open();
// Имя заказчика
string qeury_job = "SELECT name FROM dbo.tim_clients_type WHERE id = '" + comboBox1.SelectedValue + "'";
using (SqlCommand sqlcmd = new SqlCommand(qeury_job, sqlcon))
{
name_client = sqlcmd.ExecuteScalar().ToString();
}
// Модель его машины
string qeury_car = "SELECT model FROM dbo.tim_car WHERE(id = '" + comboBox2.SelectedValue+ "')";
using (SqlCommand sqlcmd = new SqlCommand(qeury_car, sqlcon))
{
model_car = sqlcmd.ExecuteScalar().ToString();
}
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
Document doc = wordApp.Documents.Open(TemplateFilename);
Range r = doc.Range();
Table table_job = doc.Tables.Add(r,1,8 );
table_job.Borders.Enable = 1;
using (SqlCommand sqlcmd = new SqlCommand("SELECT * FROM dbo.tim_job Where fid_zakaz_naryad = '" + txt_nom_zakaza.Text + "'", sqlcon))
{
using (SqlDataReader reader = sqlcmd.ExecuteReader())
{
int j = 1;
while (reader.Read())
{
table_job.Rows.Add();
for (int i =1; i <= reader.FieldCount; i++)
{
table_job.Cell(j, i).Range.Text = reader.GetValue(i - 1).ToString();
}
j = j + 1;
}
}
}
// Запись в документ
ReplaceWord("<date_today>", dateTimePicker1.Value.ToString(), doc); //сегоднешнее число
ReplaceWord("<Name_client>", name_client, doc);// имя заказчика
ReplaceWord("<Model_car>", model_car, doc);// модель машины
// ReplaceWord("<table_job>", table_job, doc);// таблица из базой с работой
wordApp.Visible = true;
sqlcon.Close();
}
}
private void ReplaceWord(string replace, string text, Document doc)//замена
{
var range = doc.Content;
range.Find.ClearFormatting();
range.Find.Execute(FindText: replace, ReplaceWith: text);
}
Вот что получается: Повторюсь, мне надо, чтобы эта таблица заменилась место table_job
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости