Подскажите пожалуйста, как экспортировать таблицу из excel в word. Пробовал вот так.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Diagnostics;
using System.Windows.Forms;
using winForms = System.Windows.Forms;
using Word = Microsoft.Office.Interop.Word;
using MessageBox = System.Windows.MessageBox;
namespace ExcelToWord
{
/// <summary>
/// Логика взаимодействия для MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
Word._Application oWord = new Word.Application();
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "c:\\";
openFileDialog1.Filter = "Excel files|*.xlsx";
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == winForms.DialogResult.OK)
{
textBox1.Text = openFileDialog1.FileName;
}
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
SaveFileDialog folderdialog = new SaveFileDialog();
folderdialog.InitialDirectory = "c:\\";
folderdialog.Filter = "Word files|*.docx";
folderdialog.RestoreDirectory = true;
if (folderdialog.ShowDialog() == winForms.DialogResult.OK)
File.WriteAllText(folderdialog.FileName, textBox1.Text);
{
textBox2.Text = folderdialog.FileName;
}
}
private void Button_Click_2(object sender, RoutedEventArgs e)
{
string tmpPath = textBox2.Text;
string xlPath = textBox1.Text;
Word.Application wdApp = null;
Word.Document wdDoc = null;
try
{
wdApp = new Word.Application();
wdDoc = wdApp.Documents.Open(tmpPath);
}
catch (Exception ex)
{
if (wdApp == null || wdDoc == null) wdApp.Quit(false);
MessageBox.Show(ex.Message);
return;
throw;
}
//Версия книги Excel по расширению
int xlVersion = System.IO.Path.GetExtension(xlPath) == "xls" ? 8 :
12;
//Выбор закладки, чтобы задать место вставки
wdDoc.Bookmarks["test"].Select();
wdApp.Selection.Collapse(Word.WdCollapseDirection.wdCollapseStart);
//Вставка поля связи с таблицей в местоположение курсора. Но не в
закладку!!!
Word.Field fld = wdApp.Selection.Fields.Add(
wdApp.Selection.Range,
Word.WdFieldType.wdFieldLink,
"Excel.Sheet." + xlVersion.ToString() + " " +
xlPath.Replace("\\", "\\\\") + " Лист1!A1G1:A290G290 \\a \\f 5
\\h", true);
//Запоминание режима отображения полей, т.к. для определения
закладки нужно,
//чтобы отображалась таблица, а не код поля Link
bool showFieldCodes = wdApp.ActiveWindow.View.ShowFieldCodes;
//Выключение отображения полей
wdApp.ActiveWindow.View.ShowFieldCodes = false;
//После вставки таблицы курсор окажется за ней. Смещаем курсор влево
//пока он не окажется в таблице
while (!
(bool)wdApp.Selection.Information[Word.WdInformation.wdWithInTable])
wdApp.Selection.MoveLeft();
//Переопределение закладки
wdDoc.Bookmarks.Add("test", wdApp.Selection.Tables[1].Range);
//Восстановление режима отображения полей
wdApp.ActiveWindow.View.ShowFieldCodes = showFieldCodes;
//Разрыв связи с таблицей. Если нужно.
fld.Unlink();
//Показ приложения
wdApp.Visible = true;
}
private void Button_Click_3(object sender, RoutedEventArgs e)
{
this.Close();
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Для доступа к БД Oracle из MVC ASPNet приложения используется библиотека Oracle
При отладке создаются 8 потоков, каждый из которых выполняет одну и ту же функцию параллельноКак можно проследить путь через F11 от начала...
У меня две кнопки CustomButtonЕсть только одно событие у клиента ClientSideEvent -> CustomButtonClick