У меня есть этот код, который экспортирует файл excel с помощью C# из 1 listview. Моя проблема теперь, если у меня есть 2 списка, которые будут сгенерированы в 1 файле excel, мой план - listview1 для sheet1, а listview2 - для листа2.Как экспортировать файл excel в C# в несколько листов
это мой код генерирует ListView1, чтобы преуспеть в sheet1:
string[] st = new string[listView1.Columns.Count];
DirectoryInfo di = new DirectoryInfo(Environment.ExpandEnvironmentVariables("%USERPROFILE%") + @"\Desktop\");
if (di.Exists == false)
di.Create();
fileName f = new fileName();
if (f.ShowDialog() == DialogResult.OK)
{
StreamWriter sw = new StreamWriter(Environment.ExpandEnvironmentVariables("%USERPROFILE%") + @"\Desktop\" + f.Filenam + ".xls", false);
sw.AutoFlush = true;
string header = "";
for (int col = 0; col < listView1.Columns.Count; col++)
{
header += listView1.Columns[col].Text.ToString() + "\t";
}
sw.Write(header);
int rowIndex = 1;
int row = 0;
string st1 = "";
for (row = 0; row < listView1.Items.Count; row++)
{
if (rowIndex <= listView1.Items.Count)
rowIndex++;
st1 = "\n";
for (int col = 0; col < listView1.Columns.Count; col++)
{
st1 = st1 + listView1.Items[row].SubItems[col].Text.ToString() + "\t";
}
sw.Write(st1);
}
sw.Close();
FileInfo fil = new FileInfo(Environment.ExpandEnvironmentVariables("%USERPROFILE%") + @"\Desktop\" + f.Filenam + ".xls");
if (fil.Exists == true)
MessageBox.Show("Process Completed", "Export to Excel", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
+1 Проблемы с производительностью и ограничениями Microsoft Interop. – mike27015
+1 на EPPlus - только недостатком является то, что он создает файлы xlsx, поэтому, если вам нужно xls, это может быть не для вас. – andrew
Oh .. thanks @Andrew, где ваш +1 :-) – Irfan