skstcs Ответов: 3

как экспортировать данные из листа Excel 1 в лист excel 2 с помощью c#


как экспортировать данные из листа Excel 1 в лист excel 2 с помощью c#




в Excel лист 1 лист 2 в Excel(в Excel)

Kuthuparakkal

Один и тот же файл excel в верхнем и нижнем конце?

3 Ответов

Рейтинг:
2

Member 14988334

использование системы;
использование системы.Коллекции.Общий;
использование системы.ComponentModel;
использование System.Data;
использование системы.Рисование;
использование System.Linq;
использование системы.ИО;
использование System.Text;
использование системы.Нарезание резьбы.Задачи;
использование системы.Окна.Формы;
используя системы.Во время выполнения.InteropServices;
использование Excel = Microsoft.Офис.Взаимодействие.Превосходить;

пространство имен SplitExcel
{
общественности частичного класс form1 : форма
{
открытый form1()
{
метод InitializeComponent();
}

частный недействительными обработчика button1_click(объект отправителя, EventArgs в электронной)
{
if (openFileDialog1.ShowDialog() == Система.Окна.Формы.свойство DialogResult.ОК)
{
Строка fileName_in = openFileDialog1.имя файла;
// --------------------------------------------------------------------------------- открыть входной файл
Превосходить.Приложение xlApp_in = новый Microsoft.Офис.Взаимодействие.Превосходить.Приложение();

если (xlApp_in == нуль)
{
Ящик для сообщений.Показать("Excel установлен неправильно!!");
вернуть;
}
Превосходить.XlWorkBook_in книги ;
Превосходить.Рабочий лист xlWorkSheet_in;
Превосходить.Диапазон диапазон;
xlWorkBook_in = xlApp_in.Рабочая тетрадь.Open(fileName_in, 0, true, 5, "", "", true, Microsoft.Офис.Взаимодействие.В Excel.XlPlatform.xlWindows, "\Т", ложь, ложь, 0, true, преобразуется в 1, 0);
xlWorkSheet_in = (Excel.Рабочий лист)xlWorkBook_in.Worksheets.get_Item(1);
диапазон = xlWorkSheet_in.UsedRange;

// --------------------------------------------------------------------------------- открыть выходной файл
/*
Превосходить.Приложение xlApp_out = новый Microsoft.Офис.Взаимодействие.Превосходить.Приложение();

если (xlApp_out == нуль)
{
Ящик для сообщений.Показать("Excel установлен неправильно!!");
вернуть;
}
Превосходить.Книги xlWorkBook_out;
Превосходить.Рабочий лист xlWorkSheet_out;
неверное значение объекта = система.Отражение.Недостающий.Ценность;
xlWorkBook_out = xlApp_out.Рабочая тетрадь.Добавить(неверное значение);
xlWorkSheet_out = (Excel.Рабочий лист)xlWorkBook_out.Worksheets.get_Item(1);
*/
// --------------------------------------------------------------------------------- создать новое имя
// Строки fileName_in_ext = путь.GetExtension(fileName_in);
Строка fileName_in_ext = ".xls";
Строка fileName_in_nam = Path.GetFileNameWithoutExtension(fileName_in);
Строка fileName_in_pad = Path.GetDirectoryName(fileName_in);

инт корпорации;
int cCnt;
int rw = 0;
int cl = 0;

РВ = диапазон.Строк.Рассчитывать;
rw = 10;
cl = диапазон.Столбцы.Рассчитывать;

для (ГК "Роснанотех" совместно = 1; корпорации &ЛТ;= РВ; ГК "Роснанотех" совместно++)
{
Превосходить.Приложение xlApp_out = новый Microsoft.Офис.Взаимодействие.Превосходить.Приложение();

если (xlApp_out == нуль)
{
Ящик для сообщений.Показать("Excel установлен неправильно!!");
вернуть;
}
Превосходить.Книги xlWorkBook_out;
Превосходить.Рабочий лист xlWorkSheet_out;
неверное значение объекта = система.Отражение.Недостающий.Ценность;
xlWorkBook_out = xlApp_out.Рабочая тетрадь.Добавить(неверное значение);
xlWorkSheet_out = (Excel.Рабочий лист)xlWorkBook_out.Worksheets.get_Item(1);

progressBar1.Value = (100 * rCnt) / rw;
для (cCnt = 1; cCnt <= cl; cCnt++)
{
пробовать
{
xlWorkSheet_out.Ячейки[rCnt, cCnt].value = xlWorkSheet_in.Ячейки[rCnt, cCnt].значение;
}
ловить { };
}
Строки fileName_out = fileName_in_pad + "\\" + fileName_in_nam + корпорации.Метод toString() + fileName_in_ext;
xlWorkBook_out.Сохранить как(fileName_out, в формате Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
xlWorkBook_out.Недалеко(правда, misValue, misValue);
xlApp_out.Бросить();
Маршал.Метода releasecomobject(xlWorkSheet_out);
Маршал.Метода releasecomobject(xlWorkBook_out);
Маршал.Метода releasecomobject(xlApp_out);
}
xlWorkBook_in.Недалеко(правда, нуль, нуль);
Маршал.Метода releasecomobject(xlWorkSheet_in);
Маршал.Метода releasecomobject(xlWorkBook_in);
Маршал.Метода releasecomobject(xlApp_in);

Ящик для сообщений.Показать("файл Excel создан");
}
}
}
}


Richard Deeming

Неформатированный, необъяснимый дамп кода не является решением этого вопроса.

Тем более что вопрос был помечен тегом "ASP", а Office Interop не поддерживается ни в одном автоматическом приложении:

Рекомендации по автоматизации работы офиса на стороне сервера[^]
В настоящее время корпорация Майкрософт не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любого автоматического, неинтерактивного клиентского приложения или компонента (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может демонстрировать нестабильное поведение и/или взаимоблокировку при запуске Office в этой среде.

Рейтинг:
0

Sudhakar Shinde

Пожалуйста, взгляните на это ССЫЛКА с требуемым кодом.

Овации,
Судхакар


Рейтинг:
0

Abhinav S

Попробуй
http://support.microsoft.com/kb/306023[^]
Запись данных в Excel с помощью языка C#[^]

Обратите внимание, что передача данных между excels будет похожа на экспорт данных из одного excel и импорт в другой.