Zukiari Ответов: 4

Экспорт двух datatable в два листа одного и того же файла excel


Привет,

Мне нужно экспортировать таблицу двух значений на две отдельные листы одного Excel файла.
Как я могу создать несколько листов и экспортировать их в один и тот же файл?

Спасибо.

AmitGajjar

вы хотите создать несколько листов Excel для экспорта данных ? но вы только что сказали, что добавили два листа. так в чем же ваш вопрос ?

Zukiari

Когда я нажимаю кнопку, Мне нужно экспортировать данные из двух таблиц в два листа файла excel. Я должен создать несколько листов, а затем экспортировать данные.

Спасибо.

4 Ответов

Рейтинг:
2

Sreegth V

Попробуйте создать несколько объектов рабочего листа рабочей книги.

Dim xlsapp As New Microsoft.Office.Interop.Excel.Application()
Dim workbook As Microsoft.Office.Interop.Excel.Workbook = xlsapp.Workbooks.Open(dlgSaveFile.FileName, 0, False, 5, "", "", _
True, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, vbTab, False, False, 0, _
True, 1, 0)
Dim sheet1 As Microsoft.Office.Interop.Excel.Worksheet = workbook.Worksheets(1)
Dim sheet2 As Microsoft.Office.Interop.Excel.Worksheet = workbook.Worksheets(1)


Zukiari

Спасибо за ваш ответ.
Могу ли я получить код на C#? Кроме того, как я могу упомянуть имя листа при экспорте в excel?

Sreegth V

Конечно

Рейтинг:
2

Christian Graus

Как вы теперь создаете один лист ? Инструменты microsoft для office позволяют вам работать с листами excel в коде, есть также коммерческие библиотеки, которые вы можете купить. Они будут поддерживать создание нескольких листов, чего вы не сможете сделать, если создаете файлы excel путем экспорта в csv.

Я должен был догадаться, что нам поможет, если вы разместите код, чтобы показать нам, как вы их создаете сейчас.


Zukiari

Привет,

Поскольку мне нужно настроить ширину столбца, я использую следующий код для одного datatable.

private void ExporttoExcel(DataTable table)
{
Свойство HttpContext.Тока.Ответ.Четкий();
Свойство HttpContext.Тока.Ответ.ClearContent();
Свойство HttpContext.Тока.Ответ.ClearHeaders();
Свойство HttpContext.Тока.Ответ.Буфер = true;
Свойство HttpContext.Тока.Ответ.ContentType = " приложение / ms-excel";
Свойство HttpContext.Тока.Ответ.Напишите (@"<!Элемент DOCTYPE в HTML общественности ""-//W3C для//определения DTD HTML 4.0 с переходным//ванной""&ГТ;");
Свойство HttpContext.Тока.Ответ.AddHeader ("Content-Disposition", " attachment;filename=Reports.xls");

Свойство HttpContext.Тока.Ответ.Charset = " utf-8";
Свойство HttpContext.Тока.Ответ.ContentEncoding = Система.Текст.Кодирование.GetEncoding ("windows-1250");
// устанавливает шрифт
Свойство HttpContext.Тока.Ответ.Писать("");
Свойство HttpContext.Тока.Ответ.Напишите ("< BR> & lt;BR> & lt; BR>");
// устанавливает границу таблицы, интервал между ячейками, цвет границы, шрифт текста, фон, передний план, высоту шрифта
Свойство HttpContext.Тока.Ответ.Write ("<Table border= '1' bgColor= '#ffffff'" +
"borderColor= ' #000000' cellSpacing= '0' cellPadding= '0'" +
размер шрифта "стиль=': 10.0 pt; купел-семейство:Колибри; фон:белый; в'>");
foreach (строка DataRow в таблице.Строки)
{//запись в новую строку
Свойство HttpContext.Тока.Ответ.Напишите("< TR>");
Свойство HttpContext.Тока.Ответ.Напишите ("< Td>");
Свойство HttpContext.Тока.Ответ.Write(строка[0].Метод toString());
Свойство HttpContext.Тока.Ответ.Напишите ("< / Td>");
Свойство HttpContext.Тока.Ответ.Write ("<Td style= ' width: 25px;'>");
Свойство HttpContext.Тока.Ответ.Напишите (строка[1].Метод toString());
Свойство HttpContext.Тока.Ответ.Напишите ("< / Td>");
Свойство HttpContext.Тока.Ответ.Напишите ("< Td>");
Свойство HttpContext.Тока.Ответ.Напишите (строка[2].Метод toString());
Свойство HttpContext.Тока.Ответ.Напишите ("< / Td>");
Свойство HttpContext.Тока.Ответ.Write ("<Td style= ' width: 25px;'>");
Свойство HttpContext.Тока.Ответ.Напишите (строка[3].Метод toString());
Свойство HttpContext.Тока.Ответ.Напишите ("< / Td>");
Свойство HttpContext.Тока.Ответ.Напишите ("< Td>");
Свойство HttpContext.Тока.Ответ.Напишите (строка[4].Метод toString());
Свойство HttpContext.Тока.Ответ.Напишите ("< / Td>");
Свойство HttpContext.Тока.Ответ.Напишите ("< Td>");
Свойство HttpContext.Тока.Ответ.Напишите (строка[5].Метод toString());
Свойство HttpContext.Тока.Ответ.Напишите ("< / Td>");

Свойство HttpContext.Тока.Ответ.Напишите("< / TR>");
}
Свойство HttpContext.Тока.Ответ.Write("< / Table>");
Свойство HttpContext.Тока.Ответ.Писать("
");
Свойство HttpContext.Тока.Ответ.Промывать();
Свойство HttpContext.Тока.Ответ.Конец();
}

Просто так я должен экспортировать еще одни данные.
Спасибо.

Рейтинг:
2

Sreegth V

Используйте объекты листа для выбора диапазона в нужных листах.
напр.,

 Microsoft.Office.Interop.Excel.Application xlsapp = null;
            Workbook xlsbook = null;
            Worksheet xlsdoc1 = null;
            Worksheet xlsdoc2 = null;
            xlsapp =new Microsoft.Office.Interop.Excel.Application();
            xlsbook = xlsapp.Workbooks.Add(Missing.Value);
            xlsdoc2 = xlsbook.Worksheets.Add(Missing.Value);
            xlsdoc1 = xlsbook.Worksheets.Add(Missing.Value);
            xlsdoc1.Name = "Job Summary";
            xlsdoc2.Name = "Job Details";
            Microsoft.Office.Interop.Excel.Range range;
            try
            {
                range = xlsdoc1.Range["A2", "K2"];
                range.Merge();
                range.Value2 = "Job Summary";
                range.Font.Name = "Bookman Old Style";
                range.Font.Size = 14;
                range.Font.ColorIndex = 5;
                range.Font.Bold = true;
                range.HorizontalAlignment = XlHAlign.xlHAlignCenter;
                range.BorderAround(XlLineStyle.xlContinuous, XlBorderWeight.xlThin, XlColorIndex.xlColorIndexNone, XlColorIndex.xlColorIndexNone);
//First Sheet
                {
                    range = xlsdoc1.Range["A4", "A4"];
                    range.Value2 = "Job Id:";
                    range = xlsdoc1.Range["B4", "B4"];
                    range.Value2 = "100005";
                    range.Font.Name = "Calibri";
                    range.Font.Bold = true;
                }
//Second Sheet
                {
                    range = xlsdoc2.Range["A4", "A4"];
                    range.Value2 = "Job Name:";
                    range = xlsdoc2.Range["B4", "B4"];
                    range.Value2 = "DFFFFDF";
                    range.Font.Name = "Calibri";
                    range.Font.Bold = true;
                }


Рейтинг:
0

Sreegth V

Microsoft.Office.Interop.Excel.Application xlsapp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook workbook = xlsapp.Workbooks.Open(dlgSaveFile.FileName, 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, Constants.vbTab, false,
false, 0, true, 1, 0);
Microsoft.Office.Interop.Excel.Worksheet sheet1 = workbook.Worksheets(1);
Microsoft.Office.Interop.Excel.Worksheet sheet2 = workbook.Worksheets(1);


Чтобы дать имя листу excel, используйте свойство name объекта рабочего листа.
напр.:
sheet1.Name="Example1";
sheet2.Name="Example2";


Счастливого кодирования..


Zukiari

Спасибо. BuI не знает, как закодировать, что первые табличные значения должны идти в sheet1, а вторые табличные значения-в sheet2. Не могли бы вы сказать мне и это...

Большое спасибо.