private void ExportDoc(string nameFileExport) { exportData = new OfficeExport.ExportData(); exportData.nameFileTemplate = Application.StartupPath + "\\..\\..\\resources\\docs\\act_debit_template.docx"; exportData.nameFileExport = nameFileExport; // Application.StartupPath + "\\..\\..\\resources\\docs\\act_debit_number" + ActDebit.act_number + ".docx"; exportData.tableIndex = 2; // номер таблицы в доке exportData.textToReplace = new List <string>() { "[<наименование_организации>]", "[<фио_гл_механик>]", "[<дата_списания>]", "[<номер_акта>]", "[<сумма_списания_прописью_рубли>]", "[<фио_зам_ген_директор>]", "[<фио_нач_отд_закупок>]", "[<фио_инженер>]", "[<фио_зам_главбух>]" }; string rubles = new MoneyToStr("RUR", "RUS", "NUMBER").convertValue(Convert.ToDouble(ActDebitTotalCost)); Organization organization = (Organization)comboBox_Organization.SelectedItem; string temp = ""; if (organization != null) { temp = organization.name; } // тут какие-то текстбоксы видимо с формы exportData.textReplaceWith = new List <string>() { temp, // название конторы textBox_FIO_MainMechanic.Text, // фио главного механика DateToString.Translate(ActDebit.date, "г."), // дата как «___»________202_г. ActDebit.act_number.ToString(), // номер акта rubles, // сумма прописью - рубли textBox_FIO_DeputyDirector.Text, // фио зам.ген.директора textBox_FIO_HeadProcurement.Text, // нач отдела закупок textBox_FIO_Engineer.Text, // инженер textBox_FIO_DeputyAccountant.Text // зам главбуха }; // если надо открыть файл после экспорта автоматически exportData.openFileExport = checkBox_OpenFileExport.Checked; // и самый интересный момент - таблица // количество строк с учетом что одна строка по умолчанию есть внутри шаблона // какой столбик из datagridview в какой столбик в доке // и еще есть столбцы по умолчанию exportData.indicesDefaultValues = new List <int>() { 6, // код по ОКЕИ ед. измерения 7, // наименование ед. измерения 8 // количество }; exportData.valuesDefaultValues = new List <string>() { "796", // код по ОКЕИ ед. измерения "шт.", // наименование ед. измерения "1" // количество }; exportData.indicesCustomValues = new List <int>() { 2, // цех 3, // группа оборудования 4, // инвентарный номер 5, // наименование оборудования 9, // остаточная стоимость 10 // причина списания }; exportData.valuesCustomValues = new List <List <string> >(); foreach (DataGridViewRow row in dataGridView_Data.Rows) { string workshop = row.Cells[1].Value.ToString(); string group = row.Cells[2].Value.ToString(); string inventory = row.Cells[3].Value.ToString(); string name = row.Cells[4].Value.ToString(); string cost = row.Cells[5].Value.ToString(); string reason = row.Cells[6].Value.ToString(); exportData.valuesCustomValues.Add( new List <string>() { workshop, // цех group, // группа оборудования inventory, // инвентарный номер name, // наименование cost, // остаточная стоимость reason // причина списания }); } }
private void ExportDoc(string nameFileExport) { exportData = new OfficeExport.ExportData(); exportData.nameFileTemplate = Application.StartupPath + "\\..\\..\\resources\\docs\\leasing_contract_template.docx"; exportData.nameFileExport = nameFileExport; // Application.StartupPath + "\\..\\..\\resources\\docs\\act_debit_number" + ActDebit.act_number + ".docx"; exportData.tableIndex = 3; // номер таблицы в доке exportData.textToReplace = new List <string>() { "[<номер_лизинга>]", // 123 "[<шапка_город>]", // г. Барнаул "[<шапка_дата>]", // «1» апрель 2021 г. "[<организация_лизингодатель>]", // ООО "Хомячки" "[<представитель_лизингодатель>]", // Хомяков Х.Х. "[<организация_мы>]", // ООО "Хомячки2" "[<представитель_мы>]", // Хомяков Х.Х.2 "[<1.3_стоимость_оборудования>]", // хз - пропись или цифры "[<1.4_дата_поставки_оборудования>]", // «1» апрель 2021 "[<2.2_срок_пользования_оборудованием>]", // 5 лет, 11 месяцев "[<2.3_дата_окончания_договора>]", // «1» апреля 2021 года "[<3.1.1_дата_договора>]", // «1» апрель 2021 "[<3.2.1_пункт_поставки>]", // ну какой-то адрес "[<4.1_лизингодатель_расчетный_счет>]", "[<4.1_лизингодатель_банк>]", "[<4.1_лизингодатель_бик>]", "[<4.4_дней_для_первого_платежа>]", // 10 "[<5.1_пункт_поставки>]", // дублирование п1.4 "[<5.4_срок_отказа>]", // 3 "[<6.1_пеня>]", // 0,5 "[<6.1_макс_платеж>]", // 5 "[<6.2_неустойка>]", // хз - пропись или цифры "[<7.1_дней_форс_мажора>]", "[<9.3_лизингодатель_юр_адрес_и_телефон>]", "[<9.3_мы_юр_адрес_и_телефон>]", "[<лизингодатель_юр_адрес>]", "[<лизингодатель_почт_адрес>]", "[<лизингодатель_телефон>]", "[<лизингодатель_инн>]", "[<лизингодатель_расчет_счет>]", "[<лизингодатель_банк>]", "[<лизингодатель_корресп_счет>]", "[<лизингодатель_бик>]", "[<мы_юр_адрес>]", "[<мы_почт_адрес>]", "[<мы_телефон>]", "[<мы_инн>]", "[<мы_расчет_счет>]", "[<мы_банк>]", "[<мы_корресп_счет>]", "[<мы_бик>]", "[<приложение_номер_договора>]", "[<приложение_дата_договора>]", //«1» апрель 2021 года "[<приложение_лизингодатель>]", "[<приложение_лизингополучат>]" }; string rubles = new MoneyToStr("RUR", "RUS", "NUMBER").convertValue(Convert.ToDouble(LeasingContractTotalCost)); // тут какие-то текстбоксы видимо с формы exportData.textReplaceWith = new List <string>() { contract.contract_number, "г. " + textBox_City.Text, DateToString.Translate(contract.date, "г."), leaser.name, textBox_FIO_Leaser.Text, lessee.name, textBox_FIO_Lessee.Text, rubles, DateToString.Translate(contract.date_delivery), ConvertYearsMonths.Translate(contract.period_of_use), DateToString.Translate(contract.date_end, "года"), DateToString.Translate(contract.date), contract.address_delivery, leaser.payment_account, leaser.bank, leaser.BIK, contract.days_for_first_payment.ToString(), contract.address_delivery, contract.days_for_report.ToString(), contract.penalty.ToString(), contract.max_penalty.ToString(), contract.penalty_fee.ToString(), contract.days_for_force_majeure.ToString(), leaser.legal_address + " " + leaser.phone, lessee.legal_address + " " + lessee.phone, leaser.legal_address, leaser.mailing_address, leaser.phone, leaser.INN, leaser.payment_account, leaser.bank, leaser.correspondent_account, leaser.BIK, lessee.legal_address, lessee.mailing_address, lessee.phone, lessee.INN, lessee.payment_account, lessee.bank, lessee.correspondent_account, lessee.BIK, contract.contract_number, DateToString.Translate(contract.date, "года"), leaser.name + " " + textBox_FIO_Leaser.Text, lessee.name + " " + textBox_FIO_Lessee.Text }; // если надо открыть файл после экспорта автоматически exportData.openFileExport = checkBox_OpenFileExport.Checked; // и самый интересный момент - таблица // количество строк с учетом что одна строка по умолчанию есть внутри шаблона // какой столбик из datagridview в какой столбик в доке // и еще есть столбцы по умолчанию exportData.indicesDefaultValues = new List <int>() { 5 // наименование ед. измерения }; exportData.valuesDefaultValues = new List <string>() { "шт." // наименование ед. измерения }; exportData.indicesCustomValues = new List <int>() { 2, // наименование оборудования 3, // стоимость за ед. 4, // кол-во 6 // стоимость }; exportData.valuesCustomValues = new List <List <string> >(); foreach (DataGridViewRow row in dataGridView_Data.Rows) { string name = row.Cells[0].Value.ToString(); string cost_per_one = row.Cells[1].Value.ToString(); string amount = row.Cells[2].Value.ToString(); string cost_per_all = row.Cells[4].Value.ToString(); exportData.valuesCustomValues.Add( new List <string>() { name, cost_per_one, amount, cost_per_all }); } }