EPPlus - «Тип столбца таблицы Table1 не имеет уникального имени» при создании файла xlsx из файла csvC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 EPPlus - «Тип столбца таблицы Table1 не имеет уникального имени» при создании файла xlsx из файла csv

Сообщение Anonymous »

При вызове package.Save() я получаю следующую ошибку:


Тип столбца таблицы Table1 не имеет уникальное имя


Я дал таблице имя, убедился, что все пустые ячейки имеют пустой тип по умолчанию, но все еще не могу найти, где это идет не так или как я могу установить имя типа столбца, которое не является уникальным.
Вот код, который я использую:

public static bool ConvertToXlsx(string csvFilePath)
{
bool success = false;

//we need an xlsx file path for the export and need to ensure the passed in file path is a CSV one
var xlsxFilePath = Path.ChangeExtension(csvFilePath, "xlsx");
csvFilePath = Path.ChangeExtension(csvFilePath, "csv");

//convert the csv
if (!string.IsNullOrWhiteSpace(xlsxFilePath) && !string.IsNullOrWhiteSpace(csvFilePath))
{
try
{
using (ExcelPackage package = new ExcelPackage(new FileInfo(xlsxFilePath)))
{
//add a/another worksheet with datetime value so it doesn't clash with existing worksheets to the document
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Export_" + DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss"));

//starting from cell A1, load in the CSV file data with first row as the header
worksheet.Cells["A1"].LoadFromText(
new FileInfo(csvFilePath), new ExcelTextFormat
{
Delimiter = ','
}, OfficeOpenXml.Table.TableStyles.Light1, true);
worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns();
foreach (var cell in worksheet.Cells)
{
if (cell.Value == null)
{
cell.Value = "";
}
}
//save as xlsx
package.Save();
success = true;
}
//attempt to delete the previously generated CSV file
File.Delete(csvFilePath);
}
catch (Exception ex)
{
//if we cant delete the origionaly generated CSV file (used for the conversion), then return true

if (ex.Message.Contains($"Access to the path '{csvFilePath}' is denied."))
{
return true;
}
Console.WriteLine("Error: " + ex.Message);
return false;
}
}
return success;
}


Подробнее здесь: https://stackoverflow.com/questions/478 ... generating
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»