Как я могу создать таблицу с данными из mysql в raport или pdf или текстовый документ в C# с WPF? Я пытаюсь использовать iTextSharp, но я не могу создать таблицу со своими данными из mysql. Все учебные пособия и решения, относящиеся к формам windows, имеют другую реализацию.
Я использую это для подключения моих данных из mysql в DataGrid:
query = "select * from provider;";
MySqlCommand command = new MySqlCommand(query, connection);
MySqlDataAdapter adapter = new MySqlDataAdapter(command);
dataSet = new DataSet();
adapter.Fill(dataSet, "LoadDataBinding");
DataGridProvider.DataContext = dataSet;
И я хочет создать в RAPORT / PDF / WORD таблицу, похожую на эту:
<DataGrid Grid.Row="2" Name="DataGridProvider"
Height="370" Width="auto"
Margin="20,20,20,10"
SelectionChanged="DataGridProvider_SelectionChanged"
ItemsSource="{Binding Path=LoadDataBinding}"
AutoGenerateColumns="False" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="Id" Binding="{Binding id_provider}" Visibility="Collapsed"/>
<DataGridTextColumn Width="130" Header="Name" Binding="{Binding name_provider}"/>
<DataGridTextColumn Width="110" Header="NIP" Binding="{Binding nip}"/>
<DataGridTextColumn Width="110" Header="City" Binding="{Binding city}"/>
<DataGridTextColumn Width="110" Header="Street" Binding="{Binding street}"/>
<DataGridTextColumn Width="110" Header="House number" Binding="{Binding houseNumber}"/>
<DataGridTextColumn Width="110" Header="Phone number" Binding="{Binding phoneNumber}"/>
<DataGridTextColumn Width="110" Header="Bank" Binding="{Binding bankAccount}"/>
</DataGrid.Columns>
</DataGrid>
РЕДАКТИРОВАТЬ Я решил свою проблему! Измените набор данных на datatable и используйте этот код, и это работает!
private void ExportToPDF()
{
connection.Open();
string query = "select * from provider;";
MySqlCommand command = new MySqlCommand(query, connection);
MySqlDataAdapter adapter = new MySqlDataAdapter(command);
DataTable dataTable = new DataTable();
adapter.Fill(dataTable);
Document document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(@"E:\test1.pdf", FileMode.Create));
document.Open();
PdfPTable table = new PdfPTable(dataTable.Columns.Count);
table.WidthPercentage = 100;
for (int k = 0; k < dataTable.Columns.Count; k++)
{
PdfPCell cell = new PdfPCell(new Phrase(dataTable.Columns[k].ColumnName));
cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
cell.VerticalAlignment = PdfPCell.ALIGN_CENTER;
cell.BackgroundColor = new iTextSharp.text.BaseColor(51, 102, 102);
table.AddCell(cell);
}
for (int i = 0; i < dataTable.Rows.Count; i++)
{
for (int j = 0; j < dataTable.Columns.Count; j++)
{
PdfPCell cell = new PdfPCell(new Phrase(dataTable.Rows[i][j].ToString()));
//Align the cell in the center
cell.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
cell.VerticalAlignment = PdfPCell.ALIGN_CENTER;
table.AddCell(cell);
}
}
document.Add(table);
document.Close();
connection.Close();
}