2014-09-12 9 views
8

Mam raport SSRS w SQL Server 2012, który eksportuje do Word i PDF, które są otwierane w poszczególnych czytników. Jednak po otwarciu pliku XLS w MS-Excel pojawia się komunikat z pytaniem, czy powinien naprawić uszkodzony plik. Jeśli kliknę przycisk Tak, pokaże się pusty plik z komunikatem, jak poniżej. Używam programu SQL Server 2012. Dzieje się tak tylko dla danych z jednego konkretnego dnia.Dlaczego usługa SSRS eksportuje uszkodzony plik XLS?

Replaced Part: /xl/worksheets/sheet1.xml part with XML error. Illegal xml character. Line 14, column 6935. 

Chyba muszę zbadać ten Opublikuj http://christianspecht.de/2014/01/14/excel-found-unreadable-content-when-exporting-a-reporting-services-report/

+0

Czy możesz wyświetlić raport na ten konkretny dzień w usłudze SSRS lub w wyeksportowanym pliku PDF? – Dbloch

+0

Prawidłowo, masz postacie spoza spodziewanego zakresu, a twoje opcje to wyszorowanie tych wartości lub sprawdzenie poprawek serwerów. Zbyt leniwy, aby sprawdzić, ale jeden z Cummulative Updates (CU) lub Service Pack (SP) zajął się tym. – billinkc

+0

@Dbloch Tak, można wyświetlić w formacie PDF, WOrd, SSRS. Uruchomiłem kod tak, jak w powyższym adresie URL i wygląda na to, że działa teraz. – Chakra

Odpowiedz

9

Miałem ten sam problem w moim przypadku był problem z dokładnością danych. Najwyraźniej SSRS nie jest w stanie przetworzyć 18 miejsc po przecinku, a moja procedura zwróciła te dane dla niektórych pól. To, co prawdopodobnie dzieje się w twoim przypadku. Dane dla konkretnego dnia kończą się wartością, która ma zbyt wiele miejsc dziesiętnych do przetworzenia przez SSRS.

Jedną z opcji jest zmiana typu danych w tabeli w celu zapewnienia niższej dokładności. Innym rozwiązaniem jest konwersja liczb w procedurze przechowywanej, która zapełnia raport.

SELECT CONVERT(NUMERIC(38,8),MyNumber) AS MyNumber_v2 

Możesz przeczytać więcej o tym błędzie here.

5

Miałem podobny problem z polem typu procentowego. Kiedy wartość 0% pojawiła się w danych wyjściowych, raport eksportował do Excela zepsuty plik. Automatycznie naprawiony plik Excel zawierał 0,00000000000 wartości zamiast 0,00% zgodnie z oczekiwaniami. Początkowy typ danych pola w bazie danych to DECIMAL (24,14). Dodałem do zapytania CONVERT do DECIMAL (10,7), a problem został naprawiony.

1

Napotkano mnie w tej samej sytuacji podczas eksportowania w formacie programu Excel. W moim przypadku przez dokładnie wyglądające dane wyjściowe raportu stwierdziłem, że istnieje wyjście w formacie innym niż ASCII. Usunąłem znak spoza ASCII, a po tym Excelu eksport działa dobrze. Usunąłem znak spoza ASCII z zawierającego kolumnę za pomocą następującej funkcji.

CREATE FUNCTION fnc_RemoveNonASCII 
(
@nstring nvarchar(255) 
) 
RETURNS varchar(255) 
AS 
BEGIN 
DECLARE @Result varchar(255) 
SET @Result = '' 

DECLARE @nchar nvarchar(1) 
DECLARE @position int 

SET @position = 1 
WHILE @position <= LEN(@nstring) 
BEGIN 
    SET @nchar = SUBSTRING(@nstring, @position, 1) 
    --Unicode & ASCII are the same from 1 to 255. 
    --Only Unicode goes beyond 255 
    --0 to 31 are non-printable characters 
    IF UNICODE(@nchar) between 32 and 255 
     SET @Result = @Result + @nchar 
    SET @position = @position + 1 
END 
RETURN @Result 
END 
GO 
1

Miałem podobny problem podczas eksportowania do programu Excel (format xlsx) z SSRS 2012 z bazą danych Oracle. Ale komunikat o błędzie: "Znaleźliśmy problem z pewną zawartością w XYZ.xlsx, Czy chcemy, abyśmy spróbowali odzyskać jak najwięcej?" Jeśli ufasz źródłu tego skoroszytu, kliknij "Tak". Problem polegał na tym, że nie można drukować znaków w jednym z pól. Problem rozwiązano, zmieniając zapytanie SQL, aby użyć wyrażenia regularnego jako "wybierz kolumnę1, REGEXP_REPLACE (kolumna 2," [^ [: drukuj:]] "," ") jako kolumna 2 z tabeli". Zasadniczo wyrażenie regularne usuwa wszystkie niedrukowalne znaki z kolumny 2.

0

Sprawdź czcionki (lub nagłówek kolumny) w projekcie raportu (w narzędziu do tworzenia raportów). Może jeden z nich nie istnieje na twoim komputerze!

+0

Zobacz tutaj: https: //social.msdn.microsoft.com/Forums/sqlserver/en-US/9a9ae671-d5cb-46a5-878e-09605c3a33a7/export-to-excel-error-in-sql-server-2014-report-builderviewer?forum= sqlreportingservices –

Powiązane problemy